【发布时间】:2013-01-26 17:37:01
【问题描述】:
我有一个使用 Spring MVC 和 Spring Security 的应用程序。
应用项目有ejbs和web应用。
我有一个供用户使用的公共数据库和一个按用户组划分的数据库。
因此,当用户进行身份验证时,Spring Security 使用公共数据库检查登录名/密码,当控制器调用 ejb 时,实体管理器连接到用户的组数据库。
我的目标是:即时创建用户/组及其关联的数据库。
示例:
通用数据库localhost:3306 database_schema1包含
USERS
----------------------
| NAME | GROUP_ID |
----------------------
| Pierre | 1 |
| Paul | 1 |
| Jacques | 2 |
----------------------
GROUPS
------------------------------------------
| ID | URL | SCHEMA_NAME |
------------------------------------------
| 1 | localhost:3307 | database_schema1 |
| 2 | localhost:3308 | database_schema1 |
------------------------------------------
当皮埃尔认证时,主页调用一个ejb。这个 ejb 有一个实体管理器,它必须使用模式 database_schema1
连接到第 1 组数据库 localhost:3307如果 Jacques 进行身份验证,它必须是第 2 组数据库。
如何告诉实体经理使用我在构建项目时不知道的给定数据库?
我的意思是,我不想在我的 ejb 中使用 persistence.xml,而是根据经过身份验证的用户动态初始化实体管理器。
Persistence.createEntityManagerFactory() 会在这种情况下工作吗?如果是这样,这是最好的解决方案吗?
【问题讨论】:
标签: mysql glassfish ejb entitymanager