Я с помощью графа хотел что бы не запрашивалось вот это
@OneToMany(mappedBy = "requestTask", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Basic(fetch=FetchType.LAZY)
@LazyCollection(LazyCollectionOption.TRUE)
private Set<Document> documents;
я написал
@NamedEntityGraph(
name = "RequestTask-entity-graph-with-no-document",
attributeNodes = {
@NamedAttributeNode("id"),
@NamedAttributeNode("Name"),
@NamedAttributeNode("stage"),
@NamedAttributeNode("platform"),
@NamedAttributeNode("parameters"),
@NamedAttributeNode("editTimestamp"),
@NamedAttributeNode("creationTimestamp"),
@NamedAttributeNode("history"),
}
)
где исключил это поле documents из графа
и анатировал метод в
@Repository @EntityGraph(value = "RequestTask-entity-graph-with-no-document") //
Iterable<RequestTask> findByIdNotNull();
и как бы да , я смотрю логи SQL , и там не запрашивается эта коллекция из базы, что мне и нужно было
ВОПРОС вот только :) , а нужен ли был ваще этот граф, оно то по идеи и так должно было работать .... не проверял без него ... может и так работать будет. Тогда я просто ваще не понимаю зачем мне этот граф.
с проекциями тоже работает норм ... там это даже лучше контролируюется но личшний код по приведени проекции полученной к начальному объекту . С критериями тоже работает ... но там много кода . В общем я получил что хотел , но до конца не понял .. нафига нужен граф .. если и без него будет работать. если будет кончено ... (ленивая загрузка в смысле)