java - EJB3 and EntityManagerMap at Runtime -
i need make ejb3 stateful creates map of entitymanager. want use manage multy database dynamically created @ runtime. define 1 default persistence unit in persistence.xml deployment descriptor.
my persistance.xml:
(i used jboss5 , defined datasource)
<persistence-unit name="mkyong"> <jta-data-source>java:/mkyong_jtds</jta-data-source> <properties> <property name="hibernate.archive.autodetection" value="class, hbm" /> <property name="hibernate.hbm2ddl.auto" value="create" /> <property name="hibernate.jdbc.batch_size" value="50" /> <property name="hibernate.max_fetch_depth" value="5" /> <property name="hibernate.show_sql " value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.dialect" value="org.hibernate.dialect.sqlserverdialect" /> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.jbosstransactionmanagerlookup"/> </properties> </persistence-unit>
i need create 10 entitymanager, each 1 differs connection ulr , need define specified values @ runtime. want create administrative user interface.
something like:
@persistencecontext(unitname="mkyong") private entitymanager manager; map<string, entitymanager> entitymanagermap = new hashmap<string, entitymanager>(); entitymanagermap.put("mkyong", manager); map<string, object> configoverrides = new hashmap<string, object>(); configoverrides.put("hibernate.connection.url", "jdbc:jtds:sqlserver://127.0.0.1:1433/anagrafe"); entitymanagerfactory programmaticemf = persistence.createentitymanagerfactory("mkyong", configoverrides); manager1=programmaticemf.createentitymanager(); entitymanagermap.put("anagrafe", manager1);
in sample created 2 entitymanager
one real entitymanager created automatically named 'mkyong'.
one entitymanager created @ runtime named 'anagrafe'.
...
if use real entitymanager work fine... create table...it persist..
but if try use new one... dont'work... dont create table , dont store values
why?
no error... no log... dont write on db , dont create tables
ps: if config 2 persistence-unit inside persistance.xml , use 2 injected entity manager work fine.
Comments
Post a Comment