Pregunta

Yo estoy usando el Juego 2.0.2 con ebean.

En Info de la clase, me define

@ManyToMany(fetch=FetchType.EAGER)
private Set<MemberInfo> members;

private Date createdDate = new Date();

Y MemberInfo ha memberId campo.

Cuando hago

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();

Devuelve todos Info, sin comprobar memberId de members.

¿Qué hice mal?Gracias.

¿Fue útil?

Solución

filterMany() no filtrar los padres de los resultados por parte de las expresiones de los niños (tanto de forma independiente los "intervalos").

Como se describe en su API va a encontrar todos Info los objetos y filtrado members para cada uno de ellos.

Hay también muy similares tema en Grupos De Google donde el autor de la pregunta que da su propia solución para esto.

Examinar la diferencia entre:

find.fetch("members")
    .where().filterMany("members").eq("memberId", 1L)
    .findList();

y

find.fetch("members")
    .where().eq("members.memberId", 1L)
    .findList();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top