2017-08-15 13 views
0

的列表查询的字段指定Targettype春数据JPA:在我正在寻找正确的方法名称以找到所有<code>Document</code>的S对象

public class Document { 

    @Indexed(name = "targets") 
    private List<Target> targets; 

    public class Target { 
     private String value; 
     private String type; 
    } 
} 

不幸的是,以下的方法名称不起作用:

List<Document> findByTargetType(...); 
List<Document> findByTargetsTargetType(...); 
List<Document> findByTargetsContainsTargetType(...); 
List<Document> findByTargetsContainsTargetTargetType(...); 
List<Document> findByTargetsContainingTargetType(...); 
List<Document> findByTargetsContainingTargetTargetType(...); 

那么哪个是正确的方法名称来完成所需的功能?

+0

https://stackoverflow.com/questions/26684361/filter-child-object-in-spring -data-query – Surely

+0

这是关于spring-data-jpa或spring-data-mongodb的问题?请删除其他标签。 –

+0

@JensSchauder感谢您指出这一点。这是为了避免为JPA或Mongo存储库编写查询而必须遵循的命名约定,因此它适用于两者。你会如何建议标记它? – user3105453

回答

1

你可以试试下面的查询。

使用@Query注释

@Query("{ 'targets.type' : ?0 }") 
List<Document> findByTargetsType(String type); 

或者

使用存储库支持关键字

List<Document> findByTargetsType(String type); 
+0

'findByTargetsType(String type)'是我正在看它。谢谢。 – user3105453

相关问题