我们的应用程序项目是将JPA与EclipseLink和JTA结合使用的OSGI捆绑软件,并且需要单表多租户,其中租户ID来自REST请求。根据我的阅读和尝试,似乎几乎是不可能的:
PersistenceContext
(EntityManager
)。@PersistenceUnit
无法注入,Persistence.createEntityManagerFactory
不起作用)。我想念什么吗?还是这实际上是不可能的?
答案 0 :(得分:0)
您可以在实体管理器中为请求设置多租户/区分属性。但是,对于多线程和延迟初始化来说,这是不安全的。
我尝试了支持单表多租户的CMobileCom JPA。对于每个租户,应使用一个新的EntityManager。也就是说,不应共享EntityManager来访问多个租户的数据。 EclipseLink也是如此。
免责声明:我是CMobileCom JPA的开发人员,这是一种适用于Java和Android的轻量级JPA实现。