Boa tarde galera,
tenho uma duvida com relação a boas praticas com JPA que é o seguinte.
Digamos que eu tenho duas entidades Livro e Autor onde tenho um Autor que pode escrever vários livros, mas um livro só pode ser escrito por um Autor.
então no mapeamento fazemos algo do tipo:
class Autor {
...
@OneToMany
private List<Livro> livros;
}
class Livro {
....
@ManyToOne
private Autor autor;
}
Supomos que quero trazer todos os autores que tem livros publicados até a data X e tbm listar seus livros publicados até essa data.
Então na minha consulta eu poderia fazer algo do tipo:
from Autor a join fetch a.livros l where l.dataPublicacao = :dataPublicacao
Mas eu tbm poderia fazer o join fetch sem esse filtro e fazer na lista de livros. como algo do tipo:
livros.steam().filter(livro -> livro.getDataPublicacao().berofe(x)).collect(Collectors.toList())
Agora é que vem minha dúvida, qual seria a melhor prática, filtrar diretamente na consulta ou filtrar na lista?
Desde já agradeço as respostas.