我正在使用weblogic和oracle编写Web应用程序.数据源是通过JNDI配置的,具有受限制的数据库用户,可以将DML转换为表,但不能使用DDL.正如您可能猜到的那样,该用户不是这些表的所有者,但他被授予了访问权限.
假设他是GUEST_USER
该应用程序使用JPA + EclipseLink,并且已经定义了许多实体.我不想在每个实体类中写入更改模式的属性.我已经尝试过使用此代码的SessionCustomizer.
public class MyCustomizer implements SessionCustomizer{
@Override
public void customize(Session session) throws Exception {
session.executeNonSelectingSQL("ALTER SESSION SET CURRENT_SCHEMA = OWNERS_SCHEMA");
}
}
Run Code Online (Sandbox Code Playgroud)
似乎有一些未初始化的东西,我得到一个空指针异常,我甚至不确定这是否是在使用它们之前更改连接的模式的方法.任何样品或想法?
在此先感谢您的帮助!