Introduction

De quoi faire frémir un Angry Bird
Si je vous dis “framework de persistance”, vous allez immédiatement penser Hibernate ou TopLink, car ce sont je pense deux des ORM les plus répandus dans notre cher monde J2EE. Cependant il en existe un autre, moins connu, qui propose des fonctionnalités parfois intéressantes : iBATIS. Par chance, j’ai travaillé sur un projet qui utilise ce framework, je vais donc vous le présenter dans cet article.
Lire la suite…
Hello my dear students*,
Pouvez-vous me faire un rapport sur tous les ajouts et les modifications qui ont été faits sur la table des factures en production depuis 5 ans ?
Hibernate a vraiment pensé à tout, aujourd’hui nous allons parler de l’interface Interceptor et de son utilisation dans le but de faciliter l’audit du système d’information (ici la base de données).
Avec la montée en popularité de frameworks à la Ruby on Rails, nous autres développeurs Java avons de quoi être jaloux du concept de dynamic finder supporté par exemple dans Grails, comme nous l’expliquait Cyril dans son troisième article consacré à ce sujet. Sortie de nulle part, une méthode Song.findAllByAlbumIsNull() lui permettait de ramener tous les objets de type Song dont l’attribut album était non renseigné.
Puisque les langages dynamiques1 se permettent de pratiquer la magie noire (au moyen du concept de method_missing popularisé par Ruby), je vous propose de mettre en œuvre notre meilleur vaudou pour obtenir, en Java, un résultat similaire avec un minimum d’efforts. On pourrait appeler ça des “demonic finders” si vous voulez.
Lire la suite…
Categories: Non classé Tags: criteria, dao, dynamic finder, gorm, grails, hibernate, invocation handler, jpa2, liquidform, poor man's dynamic finder, proxy
La factorisation de code est une des grandes promesses de la programmation orientée objet. Ainsi, dès que l’on a passé le niveau “novice”, on meurt d’envie de factoriser du code et l’on tombe dans le premier piège de la POO : abuser de l’héritage. La désillusion n’en sera que plus grande dès que l’on passera au niveau “confirmé”
. Mais ce n’est pas le sujet de ce billet. Non, dans ce billet je vous propose de voir un effet plus pervers de ce problème, induit par le mode de fonctionnement d’Hibernate, et la paresse humaine. Lire la suite…