1

我有这个简单的 MySQL 查询:

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

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

有没有办法在 DetachedCriteria 中使用 hibernate for spring 来做到这一点?

PS我对DetachedCriteria非常缺乏经验

谢谢

4

1 回答 1

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();
于 2013-01-07T17:28:28.693 回答