带有addEntity的Hibernate ResultTransformer - 什么是正确的语法?

时间:2011-10-14 11:18:39

标签: java hibernate native-sql resulttransformer

考虑以下问题:

"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 list = currentSession().createSQLQuery(query)
            .addScalar("code")
            .setResultTransformer(Transformers.aliasToBean(MovementHistoryImpl.class))
            .list();

但是,当我想注入MovementHistoryImpl的locFrom属性时,添加

.addEntity("locFrom",LocationImpl.class)  

不起作用:生成的MovementHistoryImpl项目具有locFrom的空值。

我没有使用resultTransformer进行检查(即返回一个List),我确实得到了一个有效的(和期望的)LocationImpl对象。 我的问题是:

1)如何正确填充MovementHistoryImpl? 2)如果您的MovementHistoryImpl属性的名称不同,它是否有效(最初我使用的是Location,而不是locFrom) 3)是否可以仅获取Location的一个属性 - 实际上我对locFrom。*不感兴趣,但只对locFrom.name感兴趣,所以我不介意MovementHistoryImpl中的locFrom对象只有“name”属性填充。

0 个答案:

没有答案