filterMany para Play 2 retorna todos os resultados
-
13-12-2019 - |
Pergunta
Eu estou usando Jogar 2.0.2 com ebean.
No Info
classe, eu definidos
@ManyToMany(fetch=FetchType.EAGER)
private Set<MemberInfo> members;
private Date createdDate = new Date();
E MemberInfo
tem memberId
de campo.
Quando eu
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();
Ele retorna todos os Info
, sem a verificação de memberId
de members
.
O que fiz de errado?Obrigado.
Solução
filterMany()
não filtrar pai resultados por crianças expressões (ambos tem separado 'intervalos').
Como descriped em sua API ele vai encontrar todos Info
objetos e filtrada members
para cada um.
Há também muito semelhante tópico Google Groups onde autor da pergunta dá a sua própria solução para isso.
Analisar a diferença entre:
find.fetch("members")
.where().filterMany("members").eq("memberId", 1L)
.findList();
e
find.fetch("members")
.where().eq("members.memberId", 1L)
.findList();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow