Предположим, у меня есть сущность JPA и запрос:
@Entity
public class MyEntity {
@OneToMany(fetch = FetchType.LAZY)
private List<ChildEntity> children = new ArrayList<ChildEntity>();
}
public List<MyEntity> fetchAll() {
return em.createQuery("select distinct e from MyEntity e join fetch e.children")
.getResultList();
}
Без отдельного ключевого слова это будет перекрестным произведением MyEntity и e.children.
Считается ли хорошей практикой использовать как отдельные, так и выборочные соединения, чтобы избежать проблемы N + 1 Select с коллекциями? Есть ли у него побочные эффекты?