我实现了一个使用 Oracle DB 的 Web 应用程序(JEE6、EJB WebProfile)。我的问题是,我需要更改使用的数据库架构(名称)而不重新编译/重新打包应用程序。所以我想要的(这只是一个想法,也许有人有更好的想法)是在服务器内进行一些配置(JNDI),该配置指定了架构名称。但是如何配置 Eclipse Link 在运行时使用其他模式名称呢?
Details:
目前我使用的是orm.xml
文件来指定架构名称。但应用程序使用三种不同的架构名称(一种用于开发,一种用于集成测试,一种用于生产),因此我需要编译和打包(maven)应用程序3次。
我有一个使用 Oracle DB 在 Glassfish 上运行的 JEE6 EJB WebProfile 应用程序,数据库连接由应用程序服务器处理并通过 JNDI 提供给应用程序。
是否有人知道如何在运行时配置数据库模式名称。
您可以使用 EclipseLink会话定制器.
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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)