休止状態で射影を使用して次の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 です。このクエリは正常に実行されていますが、結果として、ver、id、name の 3 つの列のみの値を取得しています。これはオブジェクトとしても、BizTerm テーブルの status、level のような他の列があります。これらの値は結果セットに返されません。 . プロジェクションを使用してそれらを取得するにはどうすればよいですか? 試し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