Hibernate ResultTransformer с addEntity - какой правильный синтаксис? - PullRequest
1 голос
/ 14 октября 2011

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

"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".

...