-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: EntityManager + Transaktion Frage
PostPosted: Tue May 05, 2009 10:11 am 
Newbie

Joined: Wed Feb 18, 2009 5:14 pm
Posts: 4
Hi zusammen,

ich habe eine Frage bezüglich des EntityManagers der für mich neu ist.
Es soll ein Programm zur Verwaltung der Warenwirtschaft werden. Meine Architektur wird so aussehen:
- Dao-Klassen zum Zugriff auf die DB.
- Model-Klassen um die Anwendungslogik zu implementieren.
- UserInterface bin ich noch unentschlossen, aber höchstwahrscheinlich eine JSF basierte, da ich mit SWING noch gar nichts zu tun hatte. Transaction Type = RESOURCE_LOCAL mit Tomcat.

Meine Fragen sind jetzt:
1. Wo sollte am besten die EntityManagerFactory initialisiert und wo geschlossen werden? Ich dachte in den Model-Klassen im Konstruktor initialisieren, und dann beim Aufruf der DAOs-Funktionen mitgegeben. Oder im Konstruktor der DAOs?

2. Wo soll der EntityManager initialisiert werden, habe es im Moment so dass in jeder Funktion der DAOs am Anfang
Code:
EntityManager em = emf.createEntityManager();
steht und am Ende
Code:
if(em != null) em.close();
, ist es so üblich?

3. Wie sollte die UserTransaction in Kombination mit einem EntityManager benutzt werden?

Ein paar Bespielklassen wären super um zu sehen wie es am besten in der Praxis benutzt wird.

Danke im Vorraus!


Top
 Profile  
 
 Post subject: Re: EntityManager + Transaktion Frage
PostPosted: Tue May 05, 2009 11:23 am 
Newbie

Joined: Wed Feb 18, 2009 5:14 pm
Posts: 4
Lohnt es sich überhaupt den EntityManager zu nutzen, was ist der Vorteil gegenüber der klassischen Nutzungsweise wie z.B.:
Code:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
         session.save(Obj)
         session.getTransaction().commit();

Soweit ich es verstanden habe ist der EntityManager erst mit einem EJB-Container interessant. Aber ich lasse mich gerne des Besseren belehren. :)


Top
 Profile  
 
 Post subject: Re: EntityManager + Transaktion Frage
PostPosted: Thu May 07, 2009 7:38 am 
Expert
Expert

Joined: Thu Jan 08, 2009 6:16 am
Posts: 661
Location: Germany
Du hast Recht, der EntityManager ist die Implementierung, die in EJB3-Architekturen eingesetzt werden sollte. Dieser implementiert JPA und du könntest somit theoretisch Hibernate durch andere JPA-Implementationen austauschen, ohne deinen Projektcode zu ändern.

Falls du aber ein Standalone-Projekt umsetzen musst, und dir JPA prinzipiell egal ist, würde ich dir den klassischen Hibernate-Session weg empfehlen, da du ohne nervige Casts auch Hibernate-Funktionen wie Criteria oder andere verwenden kannst.

_________________
-----------------
Need advanced help? http://www.viada.eu


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.