6

データベース固有のコードを使用せずに、GORMのみを使用してデータベースからランダムオブジェクトを取得したいと思います。

現在私はこれを使用しています:

Tag.executeQuery("from Tag order by rand()", [max: Tag.count()])

しかし、私はmysqlのrand()関数を使用しているので、それに満足していません。すべてのIDを取得し、ランダムなIDを選択してから、オブジェクト全体をクエリすることをお勧めする人もいますが、2つのクエリは必要ありません。

これを行うためのGORMの方法はありますか?純粋なGORMでない場合は、Hibernateソリューションでうまくいくかもしれません。

(私はここでこの質問を見て、テーブルからランダムな行を返すGrails GORM?、しかしそれは役に立ちません:))

4

1 に答える 1

5

最初にランダムなオフセットを取得し、max:1これらのページ付けパラメーターを使用してクエリを配置して実行できます。
(注:count()最初にテーブルでを実行する必要がありますが、非常にコストのかかる操作ではありません。)

于 2012-09-10T05:21:11.353 に答える