filterMany pour le Jeu 2 renvoie tous les résultats
-
13-12-2019 - |
Question
J'utilise Jouer 2.0.2 avec ebean.
Dans Info
la classe, j'ai défini
@ManyToMany(fetch=FetchType.EAGER)
private Set<MemberInfo> members;
private Date createdDate = new Date();
Et MemberInfo
a memberId
champ.
Quand je fais
public static Finder<Long,Info> find
= new Finder<Long,Info>(Long.class, Info.class);
find.fetch("members")
.where().filterMany("members").eq("memberId", memberId)
.order().desc("createdDate")
.findList();
Elle retourne tous les Info
, sans vérifier memberId
de members
.
Qu'ai-je fait de mal?Merci.
La solution
filterMany()
ne pas filtrer les parents des résultats par les expressions (les deux a séparé les gammes').
Comme il est décrit dans son API il va trouver tous Info
objets et filtré members
pour chacun d'eux.
Il est également très similaire sur le sujet Google Groupes où l'auteur de la question donne sa propre solution de contournement pour ce.
Examiner la différence entre:
find.fetch("members")
.where().filterMany("members").eq("memberId", 1L)
.findList();
et
find.fetch("members")
.where().eq("members.memberId", 1L)
.findList();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow