使用JPA将数据分段到不同的表/数据库中

时间:2014-03-09 22:28:54

标签: java-ee jpa ejb

我正在开发基于Java EE,EJB,JSF和JPA的Web服务。该服务提供给企业客户,为每个客户存储的数据完全独立。对于每个客户,有哪些选项可以将数据分段到不同的表或数据库中?例如。有一个Account实体,我想要表Account_customerA和Account_customerB,或者不同的PostgreSQL数据库*。客户ID将从子域或全局用户表中确定。

理想情况下,出于性能和维护原因,我们希望为所有客户使用相同的EAR。由于我们处于项目的初始阶段,我们也有兴趣听取涉及Spring等其他框架的选项。

*此请求背后的基本原理是安全性 - 特别是防止在客户之间暴露数据的错误(因此最好是拥有不同的数据库和/或数据库用户)。我还希望使用不同的表/数据库使查找性能更好,尽管当然会有内存开销。

1 个答案:

答案 0 :(得分:0)

最有可能的是,您需要注入对EntityManagerFactory对象的引用,以便为适用于所提供帐户的数据库获取适当的EntityManager。

这个问题看起来可能与您正在考虑的类似问题

Handle multiple EntityManager in Java EE application