Ral*_*lph 5 java eclipse oracle jpa glassfish
我实现了一个使用Oracle DB的Web应用程序(JEE6,EJB WebProfile).我的问题是,我需要更改已使用的数据库架构(名称),而无需重新编译/重新打包应用程序.所以我想要的(这只是一个想法,也许有人有一个更好的),是在服务器中有一些配置(JNDI),具体的Schema名称.但是如何配置Eclipse Link在运行时使用其他模式名称?
细节:
目前我使用该orm.xml文件来指定Schema名称.但是应用程序使用三个不同的Schema名称(一个用于开发,一个用于集成测试,一个用于生产),因此我需要编译和打包(maven)应用程序3次.
我使用Oracle DB在Glassfish上运行JEE6 EJB WebProfile应用程序,数据库连接由Application Server处理并通过JNDI提供给应用程序.
是否有任何机构知道如何在运行时配置数据库模式名称.
您可以使用EclipseLink SessionCustomizer.
package some.java.package;
import org.eclipse.persistence.config.SessionCustomizer;
import org.eclipse.persistence.sessions.Session;
import org.eclipse.persistence.sessions.DatabaseLogin;
public class MySessionCustomizer implements SessionCustomizer {
private String schema = "some_schema";
public MySessionCustomizer() {
schema = ... // read from property, jndi, etc.
}
public void customize(Session session) {
session.getLogin().setTableQualifier(schema);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5992 次 |
| 最近记录: |