考虑以下查询:
"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();
但是,当我想注入 MovementHistoryImpl 的 locFrom 属性时,添加
.addEntity("locFrom",LocationImpl.class)
不起作用:生成的 MovementHistoryImpl 项的 locFrom 值为空。
我在没有 resultTransformer 的情况下进行了检查(即返回一个列表),我确实得到了一个有效的(和预期的)LocationImpl 对象。我的问题是:
1)如何正确填充 MovementHistoryImpl ?2)如果您的 MovementHistoryImpl 属性命名不同,它是否有效(最初我有 Location from,而不是 locFrom 3)是否可以只获取 Location 的一个属性 - 实际上我对 locFrom.* 不感兴趣,但只有 locFrom .name,所以我不介意我在 MovementHistoryImpl 中的 locFrom 对象只填充“name”属性。