1

基準クエリでは、正しい方法で結果のリストを取得しています。

エンティティ プロジェクションのすべてのフィールドを使用したくないので、これらのフィールドを指定するために導入されました。わかりました、プロジェクションは正常に機能していますが、エンティティのリストの代わりにオブジェクトのリストを取得しています。

私が読んだように、私は適用する必要がありますsetResultTransformer(ClassName.class). resultTransformer が適用されると、className のリストが取得されますが、オブジェクトの属性はすべて NULL です。resultTransformer にさまざまなパラメーターを試してみましたが、すべての属性が null のオブジェクトのリストを常に取得しています。

例えば。:

criteria.setProjection(proList)
   .setResultTransformer( 
       new AliasToBeanResultTransformer(TramiteTrafico.class));

resultTransformer が適用されていない場合、値の取得は正しいです。理由はありますか?

皆さんありがとう!!

4

1 に答える 1

2

クラスのプロパティ名は、射影リストで使用されているエイリアスと一致する必要があります。

リストのようなもの

class CatVO {
  String getCatName()  { ..}
  void setCatName(String catName) {..}
  String getKitName()  { ..}
  void setKitName(String kitName) {..}
}


List results = session.createCriteria(Domestic.class, "cat")
    .createAlias("kittens", "kit")
    .setProjection( Projections.projectionList()
        .add( Projections.property("cat.name"), "catName" )
        .add( Projections.property("kit.name"), "kitName" )
    ).setResultTransformer( 
       new AliasToBeanResultTransformer(CatVO.class))
     .list();
于 2012-09-10T09:18:49.980 に答える