我正在使用Hibernate标准和投影来获得不同的值,如下所示:
Criteria criteria = this.getSession().createCriteria(CmError.class);
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("router"));
projList.add(Projections.property("slot"));
criteria.setProjection(Projections.distinct(projList));
我使用结果Transformer with Projection来获取不同值的列表
List<CmError> cm = criteria.setResultTransformer(Transformers.aliasToBean(CmError.class)).list();
我所看到的是列表的所有字段值都为空,而列表的大小是正确的,这意味着我期望从相同的不同SQL查询返回的记录数与CmError列表的大小相同但数据当我遍历列表时,内部列表没有填充并返回null。
不确定我错过了什么。
答案 0 :(得分:2)
尝试将其更改为:
projList.add(Projections.property("router"), "router");
projList.add(Projections.property("slot"), "slot");