Class clazz = ServiceHelper.getRelateClazz(tag); DetachedCriteria query = DetachedCriteria.forClass(clazz); query.add(Restrictions.ge("updatetime", updatetime)); Collection<String> fieldList = getFieldList(tag, fields); ProjectionList properties = Projections.projectionList(); for(String field: fieldList){ properties.add(Projections.property(field)); } query.setProjection(properties); query.setResultTransformer(DetachedCriteria.ALIAS_TO_ENTITY_MAP); List<Map> resultList = hibernateTemplate.findByCriteria(query, from, Math.min(maxnum, 1000));
同样的逻辑,如果拼SQL则没有问题,使用HQL就取出的是[{}]
百撕不得其姐呀。 终于。。。 http://www.iteye.com/topic/363586 这个找到了一点苗头。 感谢党。
总结:
Projections.projectionList().add(Projections.property(field));时是需要一个别名的,修改为 Projections.projectionList().add(Projections.property(field).as(field)) 就OK了。
以上.