views:

42

answers:

2

In a web application using struts2 ejb hibernate, is it possible to tell the application to find or create an entity for a specific persistence-unit name, which is written in persistence.xml file, in the deployment time?

I have two persistence-unit in persistence.xml, and one datasource (including two "local-tx-datasource") xml file under the jboss node.

To clearify, I mean, I tried this;

@Entity  
@PersistenceContext(unitName="MY JNDI NAME specified in persistence.xml") 
public abstract class Vehicle {

and doesnt work.. Then tried this and etc..

@PersistenceContext(name="MY PERSISTENCE UNIT NAME specified in persistence.xml")

@PersistenceUnit(name="MY PERSISTENCE UNIT NAME specified in persistence.xml")

and also I tried these above with the "UnitName=.." instead of "name=.." but anything is worked for me...

+1  A: 
Pascal Thivent
At first, thanks for your reply.As we know, when I add an @Entity anno. to a class, it will search and should create the table in the DB just while in the deployment time.In my application, all entities are being searched in only one persistenceUnit and it is the wrong one. I mean, I want my entities to be searched or created in another DB which is specified in the other persistenceUnit.As a result, I want to specificly say my application that the selected entities must be searched or created for only the selected persistenceUnit object(which includes the right DB settings).Any idea?Thanks
Bariscan
BTW, it is worth to tell again that I have two persistence-unit in persistence.xml. I mean, I have two DB connection settings in my application and I want to use one or another depend on the entities I want. I want to be able to tell, "hey you should see this entity as a table in only that DB (because it is already there) which you can find the settings of the DB in that persistence-unit name! So, use this persistence-unit for this entity"
Bariscan
<exclude-unlisted-classes>true</exclude-unlisted-classes>is solved my problem, thanks a lot Pascal
Bariscan
A: 

@Pascal Thivent

I haven't tried using multiple EntityManager at once, but looking at above mentioned problem this may help if it works.

@PersistenceContext(unitName="MyPu1") EntityManager em1;

@PersistenceContext(unitName="MyPu2") EntityManager em2;

Nayan Wadekar
Well, that's exactly my suggestion. But it seems the OP is looking for something else.
Pascal Thivent
Thanks Nayan. However, the problem is not about entitymanager injection indeed. I have added a comment to the first answer above. If you have any idea about the problem I mentioned, I would be great to hear that.
Bariscan