0

複数の列で順序付けされたグレイルでクエリを実行しようとしていますが、これはSQL Serverデータベースに対しては機能していないようです(Oracleに対しては正常に機能します)。

def criteria = DomainObject.createCriteria()
results = criteria.list() {

    or {
        eq("field", valueA)
        eq("field", valueB)
    }

    order("field", "asc")
    order("lastUpdated", "desc")
}

'and'句の中に順序を入れようとしました。

更新:私の問題は、複数の列の順序付けの失敗によるものではなく、順序付け時にOracleとSQLServerによってNULL値が表される方法が原因であるように見えます。「asc」を使用すると、NULLはSQL Serverで最初に発生しますが、Oracleでは最後になります。

返されたgrailsリストで後処理(並べ替え)を行う必要があると思いますが、誰かがもっと良いアイデアを持っていれば幸いです。

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

0

複数のテーブルを使用する別の方法を使用したので、単純な解決策がないように見えたため、NULL値は問題を引き起こしていませんでした。

ただし、Hibernate Issue 465(上記のリンク)は現在修正されているようです:http: //in.relation.to/Bloggers/HibernateORM420CR1Released

于 2013-02-11T16:12:47.903 に答える