filterMany para Jugar 2 devuelve todos los resultados
-
13-12-2019 - |
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.
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