1

多くのプロパティを持つ 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?

ありがとうございました。

4

0 に答える 0