Tags

Projet JEE 7 sans hibernate ni JPA

Dans cet article, nous allons étudier la possibilité de créer un projet JEE 7 classique mais en supprimant la partie JPA / Hibernate. Pourquoi se passer d’Hibernate? JPA / Hibernate vient avec la promesse d’une simplication drastique de l’utilisation des bases de données avec un modèle ORM et une API de criteria sensée faciliter la vie des développeurs ainsi que la maintenance des applications. A l’usage, les choses se révèlent moins magiques que prévues et de nombreux problèmes viennent compliquer l’utilisation de cette technologie.

Lire la suite…



Hibernate 4 – Héritage – Mapping et stratégies
Hibernate 4 – Héritage – Mapping et stratégies


Dans une base de données relationnelle, il est souvent intéressant de faire de l’héritage. Mais comment peut-on représenter cet héritage avec Hibernate 4 ? Plusieurs stratégies existent, qui correspondent chacune à une représentation différente dans le modèle de données. 1 – Contexte Pour détailler les différents mappings proposés par Hibernate, on prendra l’exemple d’une entité « employe » dont héritent deux entités : « technicien » et « ingenieur ». Les classes correspondantes sont Employe, Technicien et Ingenieur.

Lire la suite…



Utilisation de l’annotation @GeneratedValue
Utilisation de l’annotation @GeneratedValue


Cet article va nous aider à comprendre l’utilisation de l’annotation @GenerateValue. Cette annotation indique que la clé primaire est générée de façon automatique lors de l’insertion en base. Sans cette annotation, la valeur de l’identifiant de la clé primaire doit être affecté avant l’insertion en base. Elle est utilisée avec une autre annotation @Id qui permet de mapper une clé primaire sur un champ unique. Cette annotation possède plusieurs attributs : strategy, generator.

Lire la suite…



La clause HAVING en Hibernate 4
La clause HAVING en Hibernate 4


Comment utiliser la clause SQL HAVING avec Hibernate 4 ? Rappel théorique En SQL, lorsqu’une requête possède une condition sur une colonne sur laquelle porte une clause GROUP BY, cette condition n’est pas exprimée dans la clause WHERE mais dans la clause HAVING. En pratique Si vous savez faire une requête simple avec Hibernate 4, écrire une condition simple et utiliser la clause GROUP BY, la mise en place d’un HAVING ne vous posera pas de problème.

Lire la suite…



Les nativeQuery en Hibernate 4, ou comment lancer une requête écrite « en dur »
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.

Lire la suite…



La clause WHERE en Hibernate 4
La clause WHERE en Hibernate 4


Comment mettre en oeuvre la clause SQL WHERE avec Hibernate 4 ? Le principe Si vous savez faire une requête simple avec Hibernate 4, vous êtes prêt à mettre en oeuvre une clause WHERE. Pour cela, il faut utiliser la classe javax.persistence.Predicate : cette classe représente une condition ou une série de conditions.  Les fonctions permettant d’appeler les opérateurs sont fournies par la boîte à outils qu’est le CriteriaBuilder. Ces fonctions prennent en paramètre des Expression<?

Lire la suite…



La clause ORDER BY en Hibernate 4
La clause ORDER BY en Hibernate 4


Comment utiliser la clause SQL ORDER BY avec Hibernate 4 ? Le principe Si vous savez faire une requête simple avec Hibernate 4, la mise en place d’ORDER BY est très simple. Elle passe par deux méthodes : la méthode orderBy() de votre CriteriaQuery, à laquelle vous passez en paramètre une méthode de tri ; la méthode asc() ou la méthode desc() de votre CriteriaBuilder, à laquelle vous passez le chemin vers le champ sur lequel vous ordonnez.

Lire la suite…



Les clés primaires composées avec Hibernate 4
Les clés primaires composées avec Hibernate 4


Dans une base de données relationnelle, la plupart des tables possèdent une clé primaire appliquée sur un seul champ. Cependant, une clé primaire peut s’appliquer à plusieurs d’entre eux : on parle de clé primaire composée. 1. Les prérequis Pour comprendre cet article, il est recommandé de savoir faire un mapping Hibernate. 2. Structure de l’entité L’entité présentera la particularité de posséder, à la place de l’annotation @Id habituelle, une Embedded key, grâce à l’annotation @EmbeddedId

Lire la suite…



La clause GROUP BY en Hibernate 4
La clause GROUP BY en Hibernate 4


Comment utiliser la clause SQL GROUP BY avec Hibernate 4 ? Rappel théorique En SQL, lorsqu’une requête possède la clause GROUP BY, les champs mentionnés dans la clause SELECT ne peuvent être que : une colonne sur laquelle porte le GROUP BY ; une fonction d’agrégat (qui, elle, peut porter sur n’importe quelle colonne). En clair, je ne peux pas mentionner dans mon SELECT une colonne sur laquelle je ne groupe pas.

Lire la suite…



Hibernate 4 et les fonctions d&rsquo;agrégat
Hibernate 4 et les fonctions d’agrégat


En SQL, les fonctions d’agrégat sont les fonctions COUNT(), SUM(), MIN(), MAX() et AVG(). Comment réaliser des requêtes avec de telles fonctions dans la clause SELECT en Hibernate 4 ? Théorie Si vous n’êtes pas familier avec Hibernate 4, reportez-vous préalablement à l’article  ». Les fonctions d’agrégats sont fournies par le CriteriaBuilder. Il suffit donc de passer en paramètre à votre fonction select() non pas un champ ou un Root mais la fonction d’agrégat.

Lire la suite…