MongoRepository 比较了两列 + Spring Data
Posted
技术标签:
【中文标题】MongoRepository 比较了两列 + Spring Data【英文标题】:MongoRepository Compared two column + Spring Data 【发布时间】:2017-10-24 06:54:47 【问题描述】:我想使用 mongorepository + spring 数据(HQL 或标准查询)执行比较两列值的查询。我正在向您展示关系查询,我想转换为 mongo。
Select * from Employee em where em.limit
我想使用 Spring 数据将上述查询转换为 HQL 查询。
【问题讨论】:
你不能在 Spring Data MongoDB 中使用 HQL,因为你没有在 MongoDB 中使用 Hibernate... @davioooh:我正在使用带有 mongo 的 spring 数据(jpa 存储库),所以我可以使用,即使我正在使用它。问题是我想在 mongo 查询中使用相同的形式。供参考spring.io/guides/gs/accessing-data-mongodb 你是使用JpaRepository
作为 CrudRepository
和 Mongo 还是 MongoRepository
?
您可以尝试Query query = new Query();
这里查询来自org.springframework.data.mongodb.repository
包,然后您可以编写条件查询,如query.addCriteria(Criteria.where("this.limit > this.age");
最后,mongoOperation.find(query, Employee.class);
。希望这会有所帮助!
我正在使用 MongoRepository 。让我试试上面一个
【参考方案1】:
您可以使用$where
来实现:
db.employee.find( $where: "this. limit < this. age" );
在此处查看文档:
https://docs.mongodb.com/manual/reference/operator/query/where/
【讨论】:
这是原生查询。我想要 HQL 表单,因为我在 Mongo + jpa 中使用 Spring 数据。 spring.io/guides/gs/accessing-data-mongodb @BhargavPatel 然后用mongoTemplate
查询它,spring 不支持这个。以上是关于MongoRepository 比较了两列 + Spring Data的主要内容,如果未能解决你的问题,请参考以下文章
Spring MongoRepository,在哪里捕获异常?