web-dev-qa-db-fra.com

Données de printemps jpa. Trouver max si aucun résultat ne renvoie la valeur par défaut

J'ai implémenté dans mon interface de dépôt Spring:

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

Cela fonctionne correctement si db n'est pas vide. Si je démarre mon environnement avec la configuration de test (H2DB est utilisé) - il n'y a pas de données au tout début. Et le résultat renvoyé par getMaxId() est null. J'aimerais avoir ici .


Est-il possible de modifier mon *JpaRepository Pour avoir résultat? Si oui, comment le modifier?

14
Sergii

Vous pouvez utiliser coalesce comme:

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

S'il n'y a pas de données, il retournera 0 au lieu de null.

28
YCF_L