Tuto - Les nativeQuery en Hibernate 4, ou comment lancer une requête écrite « en dur »
Hibernate permet de répondre à la plupart des besoins pour créer des requêtes de tout type : du simple « SELECT FROM » aux plus complexes des requêtes imbriquées.
Pourtant, cette API ne permet pas de réaliser toutes les requêtes que l’on désire. En effet, il est malheureusement impossible de créer une requête composée d’un « MINUS », ou d’un « INTERSECT ». Il est aussi impossible d’utiliser. par exemple, des REGEX dans nos requêtes. Pourtant, il faut bien pouvoir les créer, ces requêtes.
Hibernate propose pour se faire une fonction permettant de lancer une requête écrite « en dur », c’est à dire en texte directement : la createNativeQuery.
« ).
« . Dans cette table, on enregistre, entre autre, des codes adhérent. Certains ont une ou plusieurs lettres, d’autres n’en ont pas.
Notre objectif est de savoir combien d’adhérents ont un code ayant au moins une lettre. L’utilisation d’une REGEX est alors préconisée.
nativeQuery
{{< highlight java >}} EntityManager em = EntityManagerUtil.getEntityManager(); /*
// On écrit la requête String requete = "SELECT COUNT(*) FROM adherent WHERE code REGEXP ’[a-zA-Z]+’";
// On lance la requête et on enregistre le résultat, puis on le retourne BigInteger lResult = (BigInteger) em.createNativeQuery(requete).getSingleResult(); return lResult != null ? lResult.intValue() : 0; {{< /highlight >}}
Dévouvrez de nombreux articles sur Hibernate 4 ;
Dans cet article, nous allons plonger dans le monde d'Hibernate 6, en commençant par reprendre les bases d’Hibernate et ses principaux concepts. Nous explorerons ensuite les nouveautés et les améliorations apportées par Hibernate 6.
Chez AXOPEN, on ne chôme pas en août, mais on en profite pour lever un peu le nez du code, prendre du recul… et aborder des sujets qu'on laisse parfois de côté quand le quotidien technique tourne à plein régime.
Analyse des points forts et des faiblesses de la solution Google Data Studio ! On vous explique le pour et le contre avec notre retour d’expérience.