« Le cycle de vie des JSFs | Page d'accueil | Le résulat du comparatif des frameworks de persistance »

27/04/2005

Comparatif framework de persistance

Ci-dessous les frameworks de persistance choisis pour le benchmark : On a choisi d’effectuer un comparatif entre des frameworks JDO (Frameworks standards) et Hibernate (Framework non-standard).

Nom Description Libre
Hibernate TODO 1
LiDO TODO 0
Castor Castor propose une solution pour gérer la persistance et les transactions. 1
OJB OJB est une implémentation des spécifications JDO 1.0 et ODMG 3.0 1
JPOX JPOX est une implémentation de la spécification JDO 2.0. Ce projet est promu par SUN comme le projet de référence de JDO 2.0. 1

Ci-dessous les versions utilisées pour ce BenchMark.

Nom Adresse de téléchargement Version
Hibernate http://www.hibernate.org 3.0
LiDO http://www.xcalia.com/products/lido.jsp 3.0
Castor http://castor.exolab.org 0.9.6
OJB http://db.apache.org/ojb/ 1.0.1
JPOX http://www.jpox.org 1.1

Ci-dessous le tableau du comparatif :

Hibernate Lido Ojb Castor Jpox Commentaire
Propose une GUI pour le mapping + + + - + L’éditeur de mapping d’Hibernate s’intègre à la plate-forme Eclipse.
Persistance des classes arbitraires (Pas d’obligation de classe mère ou interface spécifiques) + + + + +

Il faut implémenter Timestampable pour lecture/écriture dans des transactions séparées.

Nécessite une requête SQL manuellement. - - - - -
Indépendant des RDBMS. + + + + + Hibernate et Lido ont une distribution spéciale pour Oracle.
Supporte les EJBs + + + - + Hibernate supporte les beans session de type stateful/stateless session et les benas entité BMP, JTA, JNDI, JMX intégration et JCA.
Supporte les relations entre objets + + + + +
Supporte la clause GROUP BY + + + - +
Supporte les fonctions count, avg + - + - +
Propose un générateur d’objets à partir de fichier de mapping + + + - + Hibernate reste complet à ce niveau.
Supporte l’aggregation du mapping. + - + + + Castor reste très limité.
Supporte les clefs primaires composites + + + + + Hibernate supporte les clefs primaires multiples en tant qu’objet ou propriétés d’objet.
Supporte les associations many to many et one to many + + + + +
Supporte les collections typées. + + + + +
Supporte les associations one to one + + + + +
Supporte le polymorphisme + + + - + Hibernate supporte trois stratégies de mapping: table-per-hierarchy, table-per-concrete-class, table-per-subclass
Supporte l’héritage + + + + +
Génération de jointures automatique + + + + + Hibernate supporte les jointures externes de type ANSI et Oracle
API compatible SUN JDO - + + - +
Supporte les serveurs multiples + - + - +
Nécessite une génération de code ou un enhancement manuel. - + - - -
Utilise la réflexion. - - - + +
Supporte le cache des résultats. + + + + +
Supporte le mapping d’une classe sur plusieurs tables + - + + +
Supporte le mapping de plusieurs classes sur une table + + + - +
Supporte la persistance des propriétés privées + - + - +
Supporte la persistance des propriétés via des accesseurs et mutateurs + - + + +
Supporte les méthodes de création, suppression, modification - - - + +
Supporte l’accès aux systèmes de stockage via JNDI + - - - +
Supporte les pools de connections + - - - +
Supporte la génération des séquences pour les identités des tables + + + + +
Supporte l’état déconnecté + - - - +
S’intègre avec Spring + - - + +
Total / 32 27 19 23 17 30 Le benchmark tourne en faveur du framework JPOX.

Les commentaires sont fermés.