Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行时的EJB3和EntityManagerMap_Java_Jboss_Ejb_Entitymanager - Fatal编程技术网

Java 运行时的EJB3和EntityManagerMap

Java 运行时的EJB3和EntityManagerMap,java,jboss,ejb,entitymanager,Java,Jboss,Ejb,Entitymanager,我需要创建一个EJB3状态,它创建EntityManager的映射。 我想用它来管理运行时动态创建的多个数据库。 我在persistence.xml部署描述符中定义了一个默认的持久性单元 my persistence.xml: (我使用Jboss5并定义了一个数据源) java:/mkyong\u jtds 我需要创建10个EntityManager, 每一个都不同于连接ulr,我需要在运行时定义指定的值。 我想从管理用户界面创建它们的 比如: @PersistenceContext(uni

我需要创建一个EJB3状态,它创建EntityManager的映射。 我想用它来管理运行时动态创建的多个数据库。 我在persistence.xml部署描述符中定义了一个默认的持久性单元

my persistence.xml:

(我使用Jboss5并定义了一个数据源)


java:/mkyong\u jtds
我需要创建10个EntityManager, 每一个都不同于连接ulr,我需要在运行时定义指定的值。 我想从管理用户界面创建它们的

比如:

@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);
@PersistenceContext(unitName=“mkyong”)
私人实体经理;
Map entityManagerMap=newhashmap();
entityManagerMap.put(“mkyong”,经理);
Map configOverrides=new HashMap();
configOverrides.put(“hibernate.connection.url”,“jdbc:jtds:sqlserver://127.0.0.1:1433/Anagrafe");
EntityManager工厂程序MATICEMF=
createEntityManagerFactory(“mkyong”,configOverrides);
manager1=programmaticEmf.createEntityManager();
entityManagerMap.put(“Anagrafe”,manager1);
在这个示例中,我创建了2个EntityManager

一个自动创建的名为“mkyong”的real EntityManager

在运行时创建了一个名为“Anagrafe”的EntityManager

如果我使用real EntityManager工作正常。。。它创建表…它持久化

但是如果我尝试使用新的。。。不工作。。。它不创建表也不存储值

为什么?

没有错误。。。没有日志。。。简单地说,不要在数据库上写,也不要创建表



PS:如果我在persistence.xml中配置了两个持久性单元,并且使用了两个注入的实体管理器,那么效果很好。

如果你只说“它不工作”,没有人会帮你。当你尝试时会发生什么?例外?如果是这样的话,给我们看看例外情况。我编辑了这个问题,添加了更多细节。。。第一个问题是TransactionManager。。。A我加上这一行
@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);