最近、休止状態のCriteriaAPIを初めて試しています。
私はこのHQLと同等のことをしようとしていました
「タスクtからt.userTblを選択してください」
userTblプロパティは、Taskの多対1です。Task.userTblの関係は怠惰です。
だから私はこれを思いついた
Criteria criteria = session.createCriteria( Task.class, "t" );
criteria.setProjection( Projections.property( "t.userTbl" ) );
List results = criteria.list();
残念ながら、これはHQLとは異なることをします。
HQLでは、マッピングでuserTbl関係がレイジーに設定されていますが、HQLはUserTblの非プロキシオブジェクトを熱心にフェッチしてマテリアライズします。
ただし、Criteriaで、不要なプロキシのリストが返されます。私はsetFetchModeをいじりましたが、これは正しいことではなかったようです。基準で上記を適切に実行し、HQLのように非プロキシを取り戻す方法を知っている人はいますか?
ありがとう。