(Используя Spring Data JPA) У меня есть два объекта Parent
& Child
с двунаправленным отношением OneToMany/ManyToOne между ними. Я добавляю @NamedEntityGraph
к родительскому объекту, например:
@Entity
@NamedEntityGraph(name = "Parent.Offspring", attributeNodes = @NamedAttributeNodes("children"))
public class Parent{
//blah blah blah
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY)
Set<Child> children;
//blah blah blah
}
Обратите внимание, что тип выборки для родительских детей LAZY. Это специально. Я не всегда хочу загружать детей, когда я обращаюсь к отдельному родителю. Как правило, я мог бы использовать свой графический объект с именем, чтобы так долго загружать детей по требованию. Но.....
Существует определенная ситуация, когда я хотел бы запросить одного или нескольких родителей и с нетерпением загружать своих детей. В дополнение к этому я должен иметь возможность создавать этот запрос программно. Spring Данные предоставляют JpaSpecificationExecutor, который позволяет строить динамические запросы, но я не могу понять, как использовать его в сочетании с графами сущностей для нетерпеливой загрузки детей в этом конкретном случае. Возможно ли это? Есть ли какой-либо другой способ загружать "toMany" с использованием спецификаций?