[解決済み] JPQLのLIMIT句の代替は何ですか?
2023-07-14 16:56:52
質問
JPQLで実装したPostgreSQLのクエリで作業しています。
これは、正常に動作するpsqlのネイティブクエリのサンプルです。
SELECT * FROM students ORDER BY id DESC LIMIT 1;
JPQLで同じクエリを実行してもうまくいきません。
@Query("SELECT s FROM Students s ORDER BY s.id DESC LIMIT 1")
Students getLastStudentDetails();
LIMIT句はJPQLでは機能しないようです。
JPAのドキュメントによると
setMaxResults/setFirstResult
を使用することができます。
どのように解決するには?
JPQLを使用していますが、このような結果の制限をサポートしていません。ネイティブのJPQLを使用する場合は
setMaxResults
を使用して、結果を制限する必要があります。
しかし、あなたはSpring Data JPAを使用しているので、基本的にはかなり簡単にできます。参照 を参照してください。 を参照してください。あなたの場合、次のような find メソッドはまさにあなたが望むことを行うでしょう。
findFirstByOrderById();
を使うこともできます。
Pageable
の代わりに
LIMIT
句の代わりに
@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);
そして、呼び出し側のコードで次のようにします(説明の通り ここで を参照)。
getLastStudentDetails(PageRequest.of(0,1));
どちらも同じ結果になるはずで、普通のSQLに頼る必要はありません。
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
アノテーション「@Retention」の役割
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] JavaBeanとは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
Javaジェネリックを1つの記事で
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
switch case文のcaseの後の列挙定数は列挙型なし
-
htmlとwordの相互変換の実装(画像あり)