1

在条件查询中,我以正确的方式获得了结果列表。

因为我不想引入实体投影中的所有字段来指定这些字段。好的,投影工作正常,但不是实体列表,而是获取对象列表。

当我阅读时,我需要申请setResultTransformer(ClassName.class)。应用 resultTransformer 时,将检索类名列表,但对象的所有属性均为 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 回答