Reputation: 1981
I'm looking for the correct method name to find all Document
s with a given Target
's type
:
public class Document {
@Indexed(name = "targets")
private List<Target> targets;
public class Target {
private String value;
private String type;
}
}
Unfortunately, all of the following method names aren't working:
List<Document> findByTargetType(...);
List<Document> findByTargetsTargetType(...);
List<Document> findByTargetsContainsTargetType(...);
List<Document> findByTargetsContainsTargetTargetType(...);
List<Document> findByTargetsContainingTargetType(...);
List<Document> findByTargetsContainingTargetTargetType(...);
So which is the correct method name to accomplish the desired feature?
Upvotes: 5
Views: 8940
Reputation: 75934
You can try below query.
Using @Query
annotation
@Query("{ 'targets.type' : ?0 }")
List<Document> findByTargetsType(String type);
Or
Using repository supported keywords
List<Document> findByTargetsType(String type);
Upvotes: 7