Hibernate标准 - 新手问题II

时间:2010-11-15 16:33:32

标签: java mysql hibernate

将一些sql添加到Criteria对象的select部分的最佳方法是什么?

(我想添加SELECT myFunction AS距离,以便我以后可以按距离排序)

干杯, 罗布

2 个答案:

答案 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();