Hibernate ResultTransformer с addEntity - какой правильный синтаксис?

Рассмотрим следующий запрос:

"SELECT a.code as code,{locFrom.*} " +
"FROM audit.auditlogrecord a " +
"LEFT OUTER JOIN iwrs.location locFrom on locFrom.id=old_value "

Я хочу сопоставить результат с этим классом:

public class MovementHistoryImpl implements MovementHistory {

private String code;
private String user;
private Date date;
private Location locFrom;

У меня нет проблем с получением списка только со скалярными свойствами:

        List list = currentSession().createSQLQuery(query)
            .addScalar("code")
            .setResultTransformer(Transformers.aliasToBean(MovementHistoryImpl.class))
            .list();

Тем не менее, когда я хочу добавить в свойство locFrom MovementHistoryImpl, добавив

.addEntity("locFrom",LocationImpl.class)  

не работает: результирующий элемент MovementHistoryImpl имеет нулевое значение для locFrom.

Я проверил без resultTransformer (то есть, возвращая список), и я получаю действительный (и ожидаемый) объект LocationImpl. Мои вопросы:

1) Как правильно заполнить MovementHistoryImpl? 2) Работает ли это, если ваше свойство MovementHistoryImpl названо по-другому (изначально у меня было Location from, а не locFrom 3) Можно ли получить только одно свойство Location - на самом деле меня не интересует locFrom.*, А только locFrom.name, поэтому я не возражаю против того, чтобы мой объект locFrom в MovementHistoryImpl заполнял только свойство name.

0 ответов

Другие вопросы по тегам