1

考虑以下查询:

"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”属性。

4

0 回答 0