order by を使用して大規模なデータ セットに対するクエリを実行しています。最初と最後の行だけに興味があります。( を使用して) 最初の結果を取得するのは非常に簡単でCriteria.setMaxResult()
、順序を逆にすることで最後の結果を取得できます。
ただし、両方を取得するには 2 つのクエリが必要なようで、データベースではあまり効率的ではない可能性があります。これは SQL で非常に簡単に達成できるので、一度に両方を取得できる高度な基準クエリを作成する方法を考えています。
データセットが非常に大きく、データベースからすべてを読み取るのに数分かかるため、それらすべてを取得してリストの最初と最後の要素を取得することはお勧めしません。
このクエリがデータベースに依存しないことを願っていますが、それが簡単でない場合は、ターゲット データベースが Oracle であると想定してください。