Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

EJB entity ou Hibernate?

11 réponses
Avatar
Seb
Bonjour,

Pour un site web associé à une BD (environ 50 tables sous postgresql),
j'aimerais utilisé du mapping objet/relationnel.

Je ne peut utiliser que des produits Open Source.

Bien évidemment, j'ai pensé au EJB entity pour faire cela mais
malheureusement les produits open sources comme Jboss ou Jonas
n'implémentent pas les EJB 2.1 mais seulement 2.0 et franchement après avoir
testé les EJB 2.0, je suis pas vraiment convaincu ... entre autre à cause
des limitations de EJQL : pas de order by, limit, jointures évoluées,
count....

Hibernate me semble bien mais j'aimerais vos avis sur les frameworks
objet/relationnel : dois je utiliser quand même des EJB (la prochaine
version de Jboss va intégrer les spec EJB 2.1 qui me semblent plus
élaborées), ou Hibernate vaut t'il le coup (je ne le connais pas mais il me
semble moins limité que les EJB pour le mapping)?
Peut être d'autres frameworks sont ils encore mieux : OJB, Castor...?

Bref, quels sont les avantages et les inconvénients de chacun?

10 réponses

1 2
Avatar
Vincent Brabant
Bonjour,

Pour un site web associé à une BD (environ 50 tables sous postgresql),
j'aimerais utilisé du mapping objet/relationnel.

Je ne peut utiliser que des produits Open Source.

Bien évidemment, j'ai pensé au EJB entity pour faire cela mais
malheureusement les produits open sources comme Jboss ou Jonas
n'implémentent pas les EJB 2.1 mais seulement 2.0 et franchement après avoir
testé les EJB 2.0, je suis pas vraiment convaincu ... entre autre à cause
des limitations de EJQL : pas de order by, limit, jointures évoluées,
count....

Hibernate me semble bien mais j'aimerais vos avis sur les frameworks
objet/relationnel : dois je utiliser quand même des EJB (la prochaine
version de Jboss va intégrer les spec EJB 2.1 qui me semblent plus
élaborées),
Lorque je lis un article comme

http://idevnews.com/IntegrationNews.asp?ID2
où il est dit ceci:
"The mission for EJB 3.0 is to greatly simplify Java development by
moving away from complex EJB requirements and reverting, where possible,
to Plain Old Java Objects (POJO). Also gone in EJB 3.0 will be
requirements for EJB component interfaces, Home interfaces, callback
interfaces, and even anti-patterns. [...]
EJB 3.0 is considering adding support for light-weight domain modeling
-- including inheritance, polymorphism and **O/R (object relational)
mapping using Java metadata**. Custom type mapping is also under EJB 3.0
Expert Group consideration, she added. "

je ne peux que t'encourager à ne pas te lancer dans les EJB et
d'utiliser Hibernate avec de simple Beans.

Mais bon, ce n'est que mon avis.

ou Hibernate vaut t'il le coup (je ne le connais pas mais il me
semble moins limité que les EJB pour le mapping)?
Peut être d'autres frameworks sont ils encore mieux : OJB, Castor...?

Bref, quels sont les avantages et les inconvénients de chacun?





--
Vincent Brabant
----------------
http://www.netbeans.org/index_fr.html
http://vbrabant-fr.skynetblogs.be

Avatar
Pasturel
Vincent Brabant a écrit:

Bonjour,

Pour un site web associé à une BD (environ 50 tables sous postgresql),
j'aimerais utilisé du mapping objet/relationnel.

Je ne peut utiliser que des produits Open Source.

Bien évidemment, j'ai pensé au EJB entity pour faire cela mais
malheureusement les produits open sources comme Jboss ou Jonas
n'implémentent pas les EJB 2.1 mais seulement 2.0 et franchement après
avoir
testé les EJB 2.0, je suis pas vraiment convaincu ... entre autre à cause
des limitations de EJQL : pas de order by, limit, jointures évoluées,
count....

Hibernate me semble bien mais j'aimerais vos avis sur les frameworks
objet/relationnel : dois je utiliser quand même des EJB (la prochaine
version de Jboss va intégrer les spec EJB 2.1 qui me semblent plus
élaborées),


Lorque je lis un article comme
http://idevnews.com/IntegrationNews.asp?ID2
où il est dit ceci:
"The mission for EJB 3.0 is to greatly simplify Java development by
moving away from complex EJB requirements and reverting, where possible,
to Plain Old Java Objects (POJO). Also gone in EJB 3.0 will be
requirements for EJB component interfaces, Home interfaces, callback
interfaces, and even anti-patterns. [...]
EJB 3.0 is considering adding support for light-weight domain modeling
-- including inheritance, polymorphism and **O/R (object relational)
mapping using Java metadata**. Custom type mapping is also under EJB 3.0
Expert Group consideration, she added. "

je ne peux que t'encourager à ne pas te lancer dans les EJB et
d'utiliser Hibernate avec de simple Beans.

Mais bon, ce n'est que mon avis.

je suis aussi de cet avis. Je me demande si les EJB Entity 2.x vont

tenir le choc par rapport au mapping O/R.
Il est curieux de voir que sur la JSR JDO V2.0 ( mapping O/R) ont voté
contre : IBM, BEA et Oracle. Pour moi les POJO ( objets classiques issus
de J2SE ) reviennent en force. Cela simplifie quand même les architectures.
Par contre les Session Façades sont interessant en terme d'architecture
pour l'interface d'acces aux services à gros grains. Attendons ce que
va nous proposer EJB V3

ou Hibernate vaut t'il le coup (je ne le connais pas mais il me
semble moins limité que les EJB pour le mapping)?
Je suis entrain de prendre en main Hibernate 2.1.3 et j'écris en même


temps un petit tutorial en Français ( sur JSF + Hibernate).
Cela est assez simple à prendre en main pour les cas d'écoles simples.
Il faudrait obtenir l'avis de personnes qui l'ont mis en oeuvre dans des
applications industrielles.
Il existe un IDE StandAlone Hibern8IDE, ainsi qu'un plugin pour Eclipse.
Je compte le mettre en ligne d'ici la fin Mai pour la partie Hibernate.
Je ferais une petite annonce sur ce forum.
Peut être d'autres frameworks sont ils encore mieux : OJB, Castor...?

Jérome Molière en parle dans son book. Mais je l'ai prété... ;-(



Bref, quels sont les avantages et les inconvénients de chacun?





Cordialement

JLP


Avatar
Seb
ou Hibernate vaut t'il le coup (je ne le connais pas mais il me
semble moins limité que les EJB pour le mapping)?
Je suis entrain de prendre en main Hibernate 2.1.3 et j'écris en même


temps un petit tutorial en Français ( sur JSF + Hibernate).
Cela est assez simple à prendre en main pour les cas d'écoles simples.
Il faudrait obtenir l'avis de personnes qui l'ont mis en oeuvre dans des
applications industrielles.
Il existe un IDE StandAlone Hibern8IDE, ainsi qu'un plugin pour Eclipse.


Oui, c'est ce genre d'outil qui est interessant. J'avoue que je penche
plutôt pour Hibernate (à cause des défauts des EJB que j'évoquais). Mais les
EJB 2.0 ont tout de même un avantage de productivité indéniable car la
plupart des IDE actuelles proposent des outils graphiques de mapping O/R qui
permettent de faire tres rapidement du mapping à partir de BD existantes (je
pense a jbuilder qui fait ca très rapidement par exemple).

Des retours d'expériences sur les possibilités SQL de hibernate? (parce que
c'est bien beau de vouloir encapsuler le SQL mais si c'est aussi limité que
les EJB 2.0)



Avatar
Pasturel
Seb a écrit:
ou Hibernate vaut t'il le coup (je ne le connais pas mais il me
semble moins limité que les EJB pour le mapping)?



Je suis entrain de prendre en main Hibernate 2.1.3 et j'écris en même
temps un petit tutorial en Français ( sur JSF + Hibernate).
Cela est assez simple à prendre en main pour les cas d'écoles simples.
Il faudrait obtenir l'avis de personnes qui l'ont mis en oeuvre dans des
applications industrielles.
Il existe un IDE StandAlone Hibern8IDE, ainsi qu'un plugin pour Eclipse.



Oui, c'est ce genre d'outil qui est interessant. J'avoue que je penche
plutôt pour Hibernate (à cause des défauts des EJB que j'évoquais). Mais les
EJB 2.0 ont tout de même un avantage de productivité indéniable car la
plupart des IDE actuelles proposent des outils graphiques de mapping O/R qui
permettent de faire tres rapidement du mapping à partir de BD existantes (je
pense a jbuilder qui fait ca très rapidement par exemple).

Des retours d'expériences sur les possibilités SQL de hibernate? (parce que
c'est bien beau de vouloir encapsuler le SQL mais si c'est aussi limité que
les EJB 2.0)


Hibernate propose un HQL ( Hibernate Query Langage) orienté objet ou une

API CreteriaAPI pour acceder aux données de la base qui ont l'air assez
puissant ( supporte l'héritage, les JOIN, les principales fonctions de
groupes : count, avg, max, min, sum , les tri order by...). La syntaxe
est fortement inspirée, à dessein, du SQL normalisé. Mais là je n'ai pas
assez creusé pour analyser toutes les possibilités.




Avatar
Lionel
Seb wrote:

Des retours d'expériences sur les possibilités SQL de hibernate?
(parce que c'est bien beau de vouloir encapsuler le SQL mais si c'est
aussi limité que les EJB 2.0)


j'utilise depuis plusieurs mois, et je n'ai pas rencontré le moindre
problème.
Le HQL est un régal, et l'API criteria très pratique.

des outils sont fournis avec hibernate pour générer tous les objets à partir
d'une base existante en qq secondes.

Avatar
Lionel
Lionel wrote:

j'utilise depuis plusieurs mois, et je n'ai pas rencontré le moindre
problème.


ah si, j'oubliais un souci.
je n'arrive pas à faire:
select toto, count(titi)
from ...
where ...
group by toto

car select toto génère: select toto.id, toto.field1, toto.field2, ......
alors que group by toto génère: group by toto.id
donc le group by ne fonctionne pas.

je suis obligé de faire:
select toto.lib, count(titi)
from ...
where ...
group by toto.lib

pas dramatique mais pas pratique non plus dans certains cas.

Avatar
Franck
Salut,

J'utilise Hibernate (1.2.5) en prod depuis un peu plus d'un an et je n'ai
jamais été limité par cet outil.
AMHA, Ce qu'il pourrait manquer dans certains environnements est : le
support des procédures stockées.

Tchaw


--
Franck Lefebure
mailto:
Avatar
Pasturel
Franck a écrit:
Salut,

J'utilise Hibernate (1.2.5) en prod depuis un peu plus d'un an et je n'ai
jamais été limité par cet outil.
AMHA, Ce qu'il pourrait manquer dans certains environnements est : le
support des procédures stockées.

Je crois que pour les procédures stockées Gavin King y pense pour sa

version 3. Mais cela peut devenir complexe à gérer pour Hibernate car,
au contraire de SQL, pas de norme ou standard en la matière...
Tchaw


Correction d'une erreur de ma part plus haut dans le thread, Hibern8IDE

ne permet pas de générer des mapping, mais permet créer et controler
des requetes HQL ...

Avatar
Sebastien
des outils sont fournis avec hibernate pour générer tous les objets à
partir

d'une base existante en qq secondes.


Comment se nomme cet outil?
Je ne connais que l'inverse (créer un schéma de BD à partir de classes
existantes)

Avatar
Pasturel
Sebastien a écrit:
des outils sont fournis avec hibernate pour générer tous les objets à


partir

d'une base existante en qq secondes.



Comment se nomme cet outil?
Je ne connais que l'inverse (créer un schéma de BD à partir de classes
existantes)


MiddleGen ?, mais ne fait pas partie de la livraison Hibernate => voir

chapitre 15 sur les Toolset . Pas testé


1 2