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.

Était-ce utile?

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
scroll top