我想在休眠中使用投影编写以下sql
SELECT id, name, MAX(ver)
FROM bizterm
WHERE name ILIKE '%AB%'
GROUP BY name, id order by name asc
我写了以下代码
Session session=sessionFactory.getCurrentSession();
Criteria criteria=session.createCriteria(BizTerm.class);
criteria.add(Restrictions.ilike("name", searchString,MatchMode.ANYWHERE));
criteria.addOrder(Order.asc("name"));
ProjectionList projList=Projections.projectionList();
projList.add(Projections.max("ver"));
projList.add(Projections.groupProperty("id"));
projList.add(Projections.groupProperty("name"));
criteria.setProjection(projList);
在表 id 中,ver 是 PKEY。此查询运行良好,但结果我只得到 3 列的值,即 ver、id、名称也为 Object,还有其他列,如 BizTerm 表中的状态、级别,这些值没有在结果集中返回. 我怎样才能得到那些使用投影?我试过projList.add(Projections.property("status"));
但它不起作用。我希望执行此查询
SELECT id, name,status,level MAX(ver)
FROM bizterm
WHERE name ILIKE '%AB%'
GROUP BY name, id order by name asc using projection in hibernate