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

ただし、MovementHistoryImpl の locFrom プロパティに注入したい場合は、

.addEntity("locFrom",LocationImpl.class)  

機能しません: 結果の MovementHistoryImpl アイテムの locFrom の値は null です。

resultTransformer を使用せずに (つまり、List を返す) 検査したところ、有効な (そして期待される) LocationImpl オブジェクトが得られました。私の質問は次のとおりです。

1) MovementHistoryImpl を正しく設定するにはどうすればよいですか? 2) MovementHistoryImpl プロパティの名前が異なっていても機能しますか (最初は locFrom の代わりに Location from がありました 3) Location のプロパティを 1 つだけ取得することは可能ですか - 実際には locFrom.* には興味がありませんが、locFrom のみ.name であるため、MovementHistoryImpl の locFrom オブジェクトに「name」プロパティのみを設定してもかまいません。

4

0 に答える 0