选择detachedCriteria并按不同列的总和排序

时间:2013-01-07 15:12:30

标签: hibernate detachedcriteria

我有这个简单的MySQL查询:

SELECT * from foo ORDER BY (col1+col2+col3) DESC;

col1 + col2 + col3的结果是整数。

有没有办法用DetiberCriteria来使用hibernate for spring?

P.S。我对DetachedCriteria缺乏经验

谢谢

1 个答案:

答案 0 :(得分:2)

是的,有一种方法可以使用公式注释。注释将放在Foo类上。请注意,公式注释接受sql列名而不是对象属性名。

@Formula("col1+col2+col3")
private int calculatedValue;

public int getCalculatedValue() {
    return calculatedValue;
}

public void setCalculatedValue(int calculatedValue) {
    this.calculatedValue = calculatedValue;
}

分离的查询看起来像下面的内容。

DetachedCriteria query = DetachedCriteria.forClass(Foo.class);
query.addOrder(Order.desc("calculatedValue"));
List<Foo> results = query.getExecutableCriteria(session).setMaxResults(100).list();