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.