私はドメインオブジェクトGenJournalを持っていて、それは自動的に生成された "id"メンバ(Long)を持っています。また、私が追加したJPAリポジトリもあります。max(id)のクエリーアノテーションが機能しません
@Query("select coalesce(max(u.id), 0) from GenJournal u")
Long getMaxId();
getMaxId()メソッドは、合体を追加する前にゼロまたはnullを返します。私はデータベースにids 1と2を持つ2つの行を持っています。
最新のまたは最大IDを取得しようとしています。そのため、findメソッドを使用して、サービスクラスの最新のGenJournalオブジェクトを返すことができます。
私は困惑しており、なぜこれが機能しないのかを判断するためのオプションや戦略が本当に必要です。あなたは(この
@queryよう@query注釈にnativeQuery =真のparamを渡すことで、 "ネイティブクエリ" 機能を使用することができ
私の構文は次のとおりですが、nativeQueryオプションを使用すると成功しました。@Query(nativeQuery = true、value = "gen_journal uからcoalesce(max(u.id)、0を選択)" long getMaxId() –
アイデアコード外でネイティブクエリを実行して結果を確認できますか?だからあなたの場合、あなたのコードは差分dbを指していました。 –