将一些sql添加到Criteria对象的select部分的最佳方法是什么?
(我想添加SELECT myFunction AS距离,以便我以后可以按距离排序)
干杯, 罗布
答案 0 :(得分:1)
List cats = session.createCriteria(Cat.class)
.createAlias("kittens", "kit")
.add( Restrictions.like("kit.name", "Iz%") )
.list();
但是我建议你不要将Hibernate标准API与SQL代码混合使用:选择使用SQL(或更好的HQL)代码或标准API。
答案 1 :(得分:1)
来自Hibernate documentation:
List results = session.createCriteria(Cat.class)
.setProjection( Projections.projectionList()
.add( Projections.rowCount(), "catCountByColor" )
.add( Projections.avg("weight"), "avgWeight" )
.add( Projections.max("weight"), "maxWeight" )
.add( Projections.groupProperty("color"), "color" )
)
.addOrder( Order.desc("catCountByColor") )
.addOrder( Order.desc("avgWeight") )
.list();