-
Implémentations de JPA
Bonjour,
je cherche une implémentation de JPA gratuite sans aucun doute, légère et libre de préférence. L'idéal étant que je puisse complètement gérer tout le système rien qu'avec le javax.persistance (exception faite de l'EntityManager, bien sûr), sans avoir à bricoler comme avec l'implémentation d'Hibernate.
Je sais qu'outre Hibernate, il existe TopLink Essentials et OpenJPA. Que valent ces systèmes ? Y a-t-il des comparatifs sur ces différentes implémentations ?
-
Qu'appelles-tu "bricoler", avec Hibernate ?
Tu peux faire du pur JPA avec Hibernate. Sinon, j'ai aussi utilisé Toplink Essentials. Pour ce dernier, le conseil que j'aurais à donner, c'est de n'utiliser que les versions qui sont fournies avec Glassfish. Pour les autres versions, j'ai eu des différences de fonctionnement non négligeables.
-
J'avoue que je ne parle de bricolage que suite à diverses discussions avec un collègue dans lesquelles il me dit que dès qu'on veut faire des requêtes plus spécifiques, il faut absolument récupérer l'EntityManager en Session (en gros) et faire ses requêtes par la Session d'hibernate. Dans ce cadre, nous quittons donc JPA.
Je demande ceci afin de pouvoir développer un système sans avoir une implémentation trop lourde à utiliser et pouvoir changer de service provider sans trop de soucis.
-
Je ne comprends pas bien le rapport avec Hibernate.
Si tu te limites à la norme, en théorie, cela devrait fonctionner avec toutes les implémentations.
Personne ne t'oblige à utiliser les spécificités d'une implémentation, même si cela doit rendre service dans certains cas.
-
Soit, oublions le souci Hibernate pour l'instant : j'en discuterai avec mon collègue à son retour et demanderai plus de détails si nécessaire. C'est pour un projet personnel, et ça n'urge vraiment pas.
Cependant, hormis les trois implémentations sus-citées, en existe-t-il d'autres, ainsi que des comparatifs ? Depuis, j'ai trouvé JPOX en plus, mais rien d'autre.
-
J'ai trouvé cette liste, je ne sais pas si elle est complète...
Toplink Essential (Oracle; CDDL)
Hibernate (JBoss; LGPL)
OpenJPA (Solarmetric/BEA; Apache 2.0)
Castor (Codehaus; Apache 2.0)
JPOX (JPOX; Apache 2.0)
Toplink (Oracle; commercial)
Kodo (BEA; commercial)
CocoBase (Thoughtinc; commercial)
SAP JPA (SAP; commercial)
A+
-
Ok, merci beaucoup, je vais éplucher tout cela !