Bonjour

J'ai une requête HQL qui retourne l'identifiant d'un client à partir de son nom:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
@Query("SELECT COALESCE(a.idClient,0) from Client a WHERE a.nomClient = :nomClient")
	long findIdClientByNomClient(@Param("nomClient") String nomClient);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
@RequestMapping(value="/entrepot", method=RequestMethod.POST)
	public void getAllMagasinage(ModelMap model, @RequestParam(name = "nomClientRecherche") String nomClient, HttpServletResponse response) throws ServletException, IOException {
 
	long  idClient = clientService.findIdClientByNomClient(nomClient);
Sauf que quand le nom du client n'existe pas, j'aimerai retourner 0 comme identifiant. Pour ça, j'ai utilisé la fonction COALESCE mais je reçois un message d'erreur lorsque le nom du client n'existe pas:

Null return value from advice does not match primitive return type for: public abstract long com.nitraentrepot.repository.ClientRepository.findIdClientByNomClient(java.lang.String)
ça me retourne une valeur null au lieu de 0, et comme le type long n'accepte pas de valeur null, j'ai ce message d'erreur.

Donc comment retourner 0 lorsque le résultat est null.

Merci