ASTORM

EclipseLink et les champs LAZY

En travaillant sur un projet Java EE 7 (Glassfish + EclipseLink), je suis tombé sur un bug avec les champs étant annotés @Basic(fetch = FetchType.LAZY). En gros, suivant l'ordre d'appels entre les getters/setters de l'entité, les champs FetchType.EAGER sont réinitialisés...

Lire la suite...

Glassfish 4.1.1 avec Hibernate 5.0.6

Récemment, j'ai voulu utiliser la dernière version d'Hibernate comme implémentation de JPA sur un Glassfish 4.1.1. Et comme ça ne marche pas directement, voici l'astuce pour que ça fonctionne.

Lire la suite...

Bug OpenJPA: NoClassDefFoundError

Suite à mon précédent ticket, j'ai approfondi mes tests et je suis tombé sur ce qui semble être un bug majeur d'OpenJPA 2.2.2 dans sa gestion du cache des requêtes compilées. Le résultat est qu'après environ un millier d'appels au serveur, une erreur NoClassDefFoundError est renvoyée presque systématiquement.

Lire la suite...

Fuite mémoire spéciale

Il y a quelque temps, je suis tombé sur des erreurs bizarres, style PermGen space ou NoClassDefFoundError qui survenaient de manière incompréhensible. En travaillant dessus, j'ai découvert quelques soucis avec la librairie de persistance...

Lire la suite...

JPA et les jointures

La Java Persistence API (JPA) est la spécification faisant partie de Java EE 5 (JEE5) définissant un langage SQL (le JPQL) sensé être portable. Toutefois je suis tombé sur une importante limitation de la spécification JPA elle-même : il n'est pas possible de mettre des conditions sur des jointures externes...

Lire la suite...

Date et TimeZone

La magie des gros projets est que l'on tombe inévitablement sur des problèmes inattendus. Et lorsque ceux-ci surviennent dans une phase avancée du développement et qu'ils sont assez profonds, cela devient vite une grosse prise de tête. C'est ce qui m'est arrivé avec le parsing de dates en Java...

Lire la suite...

Annotation @OneToMany

La spécification JPA permet de manipuler des données via de simples POJOs. Pour ce faire, une panoplie d'annotations existe en Java EE pour gérer tout ça. Voici un petit tutorial sur l'annotation @OneToMany qui utilise des clés primaires composées.

Lire la suite...

JPA avec J2SE

La Java Persistence API (JPA) est une spécification qui permet au développeur de faire complètement abstraction de sa base de données. Voici un petit tutorial simple avec NetBeans pour utiliser ce concept en J2SE !

Lire la suite...

PersistenceUnit dynamique

Les développeurs Java verront tout de suite de quoi je parle en disant JPA (Java Persistence API). L'idée est de pouvoir complètement rendre son programme indépendant de la base de données en mappant ses tables sur de simples objets POJOs et en utilisant une PersistenceUnit pour faire la connexion.

Lire la suite...