繁体   English   中英

使用容器托管数据源执行Oracle本机查询

[英]Executing a Oracle native query with container managed datasource

我有一个项目,在persistence.xml使用JPA的<non-jta-datasource>连接到容器管理的Oracle数据源,并且在某些方面必须使用动态构建的本机查询。 在Oracle中,默认情况下,我需要在表名称中指定schema以进行查询,但是我无权访问架构名称(也不应)。

首先,这是预期的行为吗? 如果我执行SELECT * FROM TABLE ,Hibernate应该将其重命名为Datasource参数,然后执行SELECT * FROM SCHEMA.TABLE吗?

如果不是,是否有办法以动态方式检索架构名称? 即使数据源由WebLogic / JBoss管理?

您可以执行语句alter session set current_schema=SCHEMA; 切换对象可见性。 但这是DDL语句,不支持绑定变量占位符。 从连接池中撤出连接时,恐怕没有JPA支持执行回调语句。

通常,当您想从其他架构访问对象并且不想使用架构前缀时,则可以在架构中创建同义词。 这是解决此类“问题”的常用方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM