![](/img/trans.png)
[英]How do I maintain several sql queries on different databases in same transaction using spring JPA
[英]Can I write to different jetty databases using JPA that is using the same “entity class”
我正在使用Java持久性,并使用EntityManager类,并已将其分配给存储应写入数据库的类对象。 我的问题是我想使用相同的存储类写入不同的数据库。 我的解决方案是编写一个StorageManagerfactory,该工厂的Map包含所有EntityManager。 直到我查看数据库并意识到所有信息(与Map无关,它获取正确的值)都被写入相同的数据库(Map中初始化的一个)之后,该解决方案才看起来不错。
所以我的问题是:我可以使用使用相同存储类(保存数据库结构的类)的JPA写入不同的数据库吗?
谢谢
是的,在persistence.xml
定义多个持久性单元。 然后,在注入@PersistenceContext
时,请指定unitName
属性。
我的解决方案是编写一个StorageManagerfactory,该工厂的Map包含所有EntityManager。
我认为EntityManager
的Map
不是一个好主意。
但是,应该可以使用Persistence.createEntityManagerFactory(String, Map
)创建指向N个数据库的N个EntityManagerFactory
(提到的工厂方法允许传递其他属性,这些属性覆盖在其他地方配置的值,例如连接url)。以及Map
这些EntityManagerFactory
。
然后,只需从Map
获取“正确的” EntityManagerFactory
(使用所需的任意键)并获取EntityManager
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.