我可以使用使用相同“实体类”的JPA写入不同的jetty数据库吗?

时间:2010-06-11 08:39:47

标签: java jpa

我正在使用Java persistance和EntityManager类,并将它分配给存储一个应写入数据库的类对象。我的问题是我想使用相同的存储类写入不同的数据库。我的解决方案是编写一个StorageManagerfactory,它有一个包含所有EntityManagers的Map。解决方案看起来很好,直到我查看数据库并意识到所有信息(未完成Map,获得正确的值)被写入同一个数据库(地图中初始化的一个)。

所以我的问题是: 我可以使用使用相同存储类(包含数据库结构的类)的JPA写入不同的数据库吗?

由于

2 个答案:

答案 0 :(得分:1)

是,在persistence.xml中定义多个持久性单元。然后,在注入@PersistenceContext时,请指定unitName属性。

答案 1 :(得分:0)

  

我的解决方案是编写一个StorageManagerfactory,其中包含一个包含所有EntityManagers

的Map

我认为Map的{​​{1}}不是个好主意。

但是,应该可以使用 Persistence.createEntityManagerFactory(String, Map)创建指向N个数据库的N EntityManager(提到的工厂方法允许传递覆盖其他地方可能已配置的值的其他属性,例如连接URL)以及EntityManagerFactoryEntityManagerFactory中。

然后,只需从Map获取“正确”EntityManagerFactory(使用您想要的任何键)并获得Map