Вот моя бизнес-модель.
Book {
(fetchType=lazy, JoinColumn)
Author {
(JoinColumn)
Nationality {
(JoinColumn)
Territory {
}
}
}
}
Мне нужно получить несколько свойств Территория из bookId .На данный момент я могу получить только Author из bookId , идущего по этому маршруту.
public Author getAuthorByBookId(final Long bookId) {
final Session session = getHibernateSession();
final CriteriaBuilder builder = session.getCriteriaBuilder();
final CriteriaQuery<Author> query = builder.createQuery(Author.class);
final Root<Book> root = query.from(Book.class);
query.select(root.<Author> get("authorId")).where(builder.equal(root.get("id"), bookId));
final Query<Author> q = session.createQuery(query);
return q.uniqueResult();
}
После этого я не уверен, как копать глубжеи получить свойства из Territory столбца.
Я пробовал это:
final CriteriaQuery<Territory> t = builder.createQuery(Territory.class)
и
t.select(root.<Author>get("authorId").<Nationality>get("authorNationalityId").<Territory>get("territoryId"));
Однако, это выдает InvalidPathException.Я не уверен, куда идти отсюда.