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);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:
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);
ç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.Null return value from advice does not match primitive return type for: public abstract long com.nitraentrepot.repository.ClientRepository.findIdClientByNomClient(java.lang.String)
Donc comment retourner 0 lorsque le résultat est null.
Merci
Partager