多くのプロパティを持つ Bean MyClass がある場合。
怠惰に 1 つのプロパティを取得したい場合は@Basic( fetch=lazy)
、クラスを正しくインストルメント化する必要がありますか?
しかし
Bean にプロジェクションを実行してから、ResultTransformer(TransFormers.aliasToBean(MyClass.class))
このようなもの:
/*.get(Usuario.class, 1); this gets the wholeobject with out @Basic(fetch=lazy)*/
Usuario usuario = (Usuario) session
.createCriteria(Usuario.class)
.add(Restrictions.eq("id", 1))
.setProjection(Projections.projectionList()
.add(Projections.property("id").as("id")))
.setResultTransformer(Transformers.aliasToBean(Usuario.class))
.uniqueResult();
それはトリックを行います。オブジェクト全体ではなく、ID のみを取得しました。
私の質問はです。のこのオブジェクトはUsuario
クエリ キャッシュと同じであり、キャッシュは.get()
?で取得した場合と同じです。
別のオブジェクトを取得し、usuario との関係を設定する必要があることをイメージしてください。
// projected Usuario object
AnotherObject.setUsuario(usuario);
// this works okay, but its correct?
ありがとうございました。