У меня проблемы с производительностью, и я пытаюсь добавить соединение извлечения, чтобы получить данные только в одном запросе.
Моя проблема: я получил сопоставленный объект AbstractObject
. И у меня также есть другой сопоставленный объект, такой как ObjectA
, ObjectB
et c ... все расширяются AbstractObject
.
В моем ObjectA
я получил список foos
. В моем ObjectB
я получил список otherFoos
.
Что я пытаюсь сделать: я хочу написать запрос так:
entityManager.createQuery("SELECT ao FROM AbstractObject ao LEFT JOIN FETCH ao.foos LEFT JOIN FETCH ao.otherFoos WHERE ao.id = ?1", AbstractObject.class)
Проблема: я получил nullPointerException
, потому что, я думаю, hibernate не знает foos
или otherFoos
для AbstractObject
. С моей точки зрения, я не знаю, будет ли у меня ObjectA
или ObjectB
.
Кто-нибудь знает решение этой проблемы?
Hibernate версия: 5.0.12 .Final