У меня есть метод, который пытается использовать HQL для выполнения довольно сложного запроса в базе данных. Все мои классы сущностей отображаются с аннотациями и обнаруживаются во время компиляции, а не указаны в явном виде.
В следующем коде:
List<Message> ms = ((Session) entityManager.getDelegate())
.createCriteria(MessageCRI.class).list();
log.info("Got " + ms.size() + " CRIs");
List<Message> msgs = ((Session) entityManager.getDelegate())
.createQuery(
"from MessageCRI c where c.rfdId in (select id from MessageRFD rfd where rfd.ssrId = :ssrId)")
.setParameter("ssrId", ssrId).list();
Первый вызов успешен - я получаю сообщение в журнале, в котором говорится «Получил 2 CRI» или что-то подобное. Однако при следующем вызове произойдет сбой, и будет получена стекапакетная запись с коренной причиной «org.hibernate.hql.ast.QuerySyntaxException: MessageCRI не отображается»
Чего мне не хватать?