0

データベースからHibernate経由で具体的な順序でオブジェクトを取得したいと思います。この順序は次のようなものです。

first_column最初に、たとえばnullではないというタイトルの列を持つオブジェクトを取得したいと思います。

second_column2番目として、列がnullではないオブジェクトを取得したいのですが、

最後に、別のオブジェクト/テーブルのIDであるオブジェクトを取得したいと思いthird_columnます。この別のオブジェクトには、具体的な値を持つフィールドがあります。例:"something"

私はこの方法で基準を作成しました:

criteria.addOrder(Order.asc("firstColumn"));
criteria.addOrder(Order.asc("secondColumn"));

しかし、どうすれば最後の要件を満たすことができますか?制限付きで、私はそのようなことをすることができます:

criteria.createAlias("thirdColumn", "t");
criteria.add(Restrictions.eq("t.field", "something"));

ただし、フロントエンドでページネーションを実装するためにもとを使用しているため、3つの別々のCriteria結果で制限ではなく順序を使用する必要があります。setFirstResult()setMaxResults()Criteria

4

2 に答える 2

1

SQLでステートメントを記述できる場合は、この投稿で説明されているOrderのカスタムサブクラスを作成するアプローチを回避できる可能性があります。

于 2012-11-28T13:21:50.247 に答える
1

簡単に「。」が使えると思います。区切り文字を入力し、次のようにコードを記述します

criteria.createAlias("thirdColumn", "t");
criteria.addOrder(Order.asc("t.field"));
于 2019-11-06T17:14:52.410 に答える