使用spring数据在mongodb中嵌套查询

时间:2016-08-17 14:53:36

标签: mongodb spring-boot spring-data

我正在尝试使用嵌套的Mongodb查询,但它不起作用。 它类似于Spring data mongodb query for subdocument field

但是那里提到的建议没有用。

请在下面找到我的文件。

@Document
public class Ticket {

  @Id
  private String id;

  @DBRef
  @CascadeSave
  private Customer customer;

  // getters and setters   
}

@Document
public class Customer {

  @Id
  private String id;

  private String firstName;

  // getters and setters
}

public interface TicketRepository extends MongoRepository<Ticket, String> {

  public List<Ticket> findByCustomerFirstName(String firstName);

  }

我尝试了findByCustomerFirstNamefindByCustomer_FirstName,但它不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这些建议是正确的,它应该有用......

官方文档解释了它:http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.query-methods.query-property-expressions

  

属性表达式只能引用的直接属性   管理实体,如上例所示。在创建查询时   你已经确定解析后的属性属于的属性   托管域类。但是,您也可以通过定义约束   遍历嵌套属性。假设一个人有一个地址   邮政编码。在这种情况下,方法名称为

     

echo -ne "$file\t" >> $output samtools view -F 4 $file | wc -l >> output

     

创建   财产遍历List<Person> findByAddressZipCode(ZipCode zipCode);

只需一件事,从x.address.zipCode移除@Document并尝试一下,Customer不支持加入查询(我不确定现在是否会这样做)...所以你'文档应该是Mongodb,并且必须有Ticket embbebed document作为内部对象而不是其他文档。