2017-06-23 14 views
4

場合は最大を探す私は私の春のリポジトリインターフェースで実装しました:スプリングデータjpa。ノー結果の戻りデフォルト値

@Query("SELECT max(ch.id) FROM MyEntity ch") 
Long getMaxId(); 

デシベルが空でない場合、それが正常に動作します。テスト環境設定で環境を起動すると(H2DBが使用されます)、最初はデータがありません。 getMaxId()によって返される結果はnullです。私はここに持っています。


それは、結果を持っている私の*JpaRepositoryを変更することは可能ですか?はいの場合、どのように変更する必要がありますか?

+1

新しいインスタンスを挿入するたびに最大値をインクリメントして自分でIDを生成するようにしていないと教えてください。 –

+0

idsを生成するのが良い点です!そして、はい、私は持っています。そして私はid生成器(igniteIdGenerator)をsomeTimes(DBからのキャッシュ修復であれば、igniteIdGeneratorをシフトする必要がある場合)を修復する必要があります。 – Sergii

答えて

13

あなたは次のように​​3210を使用することができます。データがない場合は、0の代わりにNULLを返します

@Query("SELECT coalesce(max(ch.id), 0) FROM MyEntity ch") 
Long getMaxId(); 

関連する問題