Hibernate repo 查询访问 mongodb 嵌入文档

Posted

技术标签:

【中文标题】Hibernate repo 查询访问 mongodb 嵌入文档【英文标题】:Hibernate repo query to access mongodb embedded document 【发布时间】:2018-07-30 02:42:54 【问题描述】:

我有一个这样的 mongo 文档:

  
   "user":  
      "name":"String",
      "Department":  
         "departName":"String",
         "departId":0
      
   

所以我有一个嵌套的 json 部门,我的 spring-hibernate 实体是这样的:

@Document(collection:"user") 
class User()
    String name
    Department department    

和班级部:

class Department()
    String departName
    Integer departId  

我想通过departName查询,这很容易用mongo查询语言完成,如下所示:

db.user.find("user.department.departName":"HHRR")

所以,我需要做的是在 spring 数据代码中进行相同的查询。我有一个 mongoRepository,这是我迄今为止尝试过的:

public interface CustomerRepository extends MongoRepository<User, String> 

public Customer findByDepartment(Department department);

但这不起作用,因为它同时通过部门名称和部门 ID 进行查询,而我只有部门名称。

我想做类似的事情:

public Customer findByDepartment.departName(String DepartName);

我可以使用 spring-hibernate 代码实现这一点吗?

如果这不可能,我可以使用 mongo 查询吗?

【问题讨论】:

【参考方案1】:

这与 Hibernate 无关。 是的,您可以通过

来实现
public Customer findByDepartment_DepartName(String DepartName);

Spring 数据会根据方法名制定查询

【讨论】:

它就像一个魅力,这正是我想要做的......如此糟糕的文档......非常感谢!

以上是关于Hibernate repo 查询访问 mongodb 嵌入文档的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate 在访问关联实体的 id 时生成 SQL 查询

mongo shell - 访问数据库集合

mongo shell - 访问数据库集合

Hibernate...如何进行数据库/SQL 查询?

我可以通过 ruby​​ 驱动程序访问 mongo 的 geoNear 功能吗?

Hibernate - 从多对多关系访问字段