JPA CriteriaBuilder получает ленивое извлечение вложенного объекта сущности - PullRequest
0 голосов
/ 29 марта 2019

Вот моя бизнес-модель.

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.Я не уверен, куда идти отсюда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...