Рассмотрим следующий запрос:
"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".