遅延のあるプロパティを予測して休止状態にする

多くのプロパティを持つBean MyClassを持っている場合。

@Basic(fetch = lazy)で1つのプロパティを取得しようとすると、クラスを正しく計測する必要がありますか?

しかし

what if you do a projection over your bean and then do a 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 のObjectはクエリキャッシュと同じで、 .get()で取得したものと同じですか?

画像あなたは別のオブジェクトを持っており、あなたはusuarioとの関係を作る必要がある。

  //projected Usuario object
   AnotherObject.setUsuario(usuario);
  //this works okay, しかし its correct?

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

1
リレーションシップを保存するには通常どおりに動作しますが、Usuario.getOtherObject()などの別のプロパティを取得する場合は、データベースからハイバネートを読み込むことはできません。これを解決するには、投影にアモサイズされたオブジェクトを含める必要があります。
追加された 著者 ics_mauricio,

答えはありません

0