openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pinaki Poddar" <>
Subject RE: Howto integrate JPA within EJB2.1 session beans? [architecture]
Date Wed, 21 Feb 2007 15:57:48 GMT
One way to provide acccess to EntityManagerFactory/EntityManager to the
SLSB is to collate JPA-related facilities into a separate class (say
PersistenceService). PersistenceService will
a) ensure EntityManagerFactory is created once (or at least not too
often) as that is the 'heavy' operation
b) provide EntityManager either i) by creating a new one in every call
and/or ii) providing an existing EntityManager bound to the current
thread (using ThreadLocal, for example) to emulate a session-per-thread
model. This session-per-thread is useful when one bean calling another
within the same transaction. 
c) this will provide a layer of isolation to the SLSBs from the actual
implementaion of a persistence service. 

Pinaki Poddar
BEA Systems

-----Original Message-----
From: Hans Prueller [] 
Sent: Wednesday, February 21, 2007 1:02 AM
Subject: Howto integrate JPA within EJB2.1 session beans? [architecture]

Hi together,

I'm sorry for bothering you with numerous basic questions regarding
OpenJPA and its usage but I have to migrate existing CMP EJBs to migrate
within short time to OpenJPA as we're having stability issues with the
current CMP engine. 

One last question I'd like to ask is regarding the recommended
architecture of using OpenJPA within EJB2.1 Stateless sessino beans:

I need to work with persistence i.e. the EntityManager throughout all
the session beans methods so my idea is to:

- create a EntityManagerFactory in the ejbCreate() method of the SLSB
- and also create the EntityManager itself in the ejbCreeate() method
and store it as a member variable of the SLSB
- this would allow easy access within the SB's methods by just using the
already initialized entity manager varialbe em.createNamedQuery() ..
etc. etc.
- clean up should be performed in the ejbRemove() method of the SLSB

I think doing so will allow migratino to openJPA with less work than
doing the whole lookup procedure in every method separately. 

what do you think? are there any pitfalls i've overlooked?

thank you for your ideas!

"Feel free" - 5 GB Mailbox, 50 FreeSMS/Monat ...
Jetzt GMX ProMail testen:
Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual
or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this
by email and then delete it.

View raw message