1

私はこの単純なMySQLクエリを持っています:

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

col1+col2+col3 の結果は整数です。

春に休止状態を使用して DetachedCriteria でこれを行う方法はありますか?

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 に答える