java - Hibernate repo查询访问mongodb嵌入文档

标签 java spring mongodb hibernate spring-boot

我有一个像这样的 mongo 文档:

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

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

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

以及类(class)部门:

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 查询吗?

最佳答案

这与 Hibernate 无关。
是的,您可以通过以下方式实现此目的

public Customer findByDepartment_DepartName(String DepartName);

Spring data将根据方法名称制定查询

关于java - Hibernate repo查询访问mongodb嵌入文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48873366/

相关文章:

java - Swing 自动完成文本字段/下拉

java - 按升序对 int 变量进行排序

java - 无法配置JPA项目

java - 如何在不更改代码的情况下将限制应用于 spring/hibernate 企业应用程序中的所有业务点?

javascript - 类型错误 : Model is not a Constructor

java - 如何使用ObjectMapper解析json

java - 并行程序 Java 中的埃拉托斯特尼筛法

java Spring : assemble other independent services into a single service

python - 如何使用pymongo命令updateUser

Java反射仅获取子类的方法(没有equals、hashcode等)