gpt4 book ai didi

java - JPA - EclipseLink - 如何在运行时配置数据库架构名称

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:33 25 4
gpt4 key购买 nike

我实现了一个使用 Oracle 数据库的 Web 应用程序(JEE6、EJB WebProfile)。我的问题是,我需要在不重新编译/重新打包应用程序的情况下更改使用的数据库架构(名称)。所以我想要的(这只是一个想法,也许有人有更好的想法)是在服务器中有一些配置(JNDI),它指定了架构名称。但是如何配置 Eclipse Link 以在运行时使用其他模式名称?

详细信息:

目前我使用orm.xml 文件来指定架构名称。但是该应用程序使用三种不同的架构名称(一种用于开发,一种用于集成测试,一种用于生产),因此我需要对应用程序进行 3 次编译和打包 (maven)。

我有一个使用 Oracle DB 在 Glassfish 上运行的 JEE6 EJB WebProfile 应用程序,数据库连接由应用程序服务器处理并通过 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);
}
}

关于java - JPA - EclipseLink - 如何在运行时配置数据库架构名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10533645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com