Oracle访问错误的表

时间:2014-01-15 05:09:05

标签: oracle hibernate

我正在使用Oracle 11g Express版。我在两个不同的表空间上创建了两个不同的用户(user1,user2)。每个用户都有相同的表集(相同的表名,列,数据类型)。我将我的应用程序配置为连接到user2,但它始终访问user1的表。我的期望是它将访问user2的表。我加倍检查用于连接数据库的用户名/密码。我不知道这里发生了什么!

我找到了答案:问题不在于Oracle。这是因为Hibernate,我在这里找到答案:http://www.schakko.de/2014/01/07/hibernate-uses-wrong-schema-during-schema-validation/

对不起我做的任何令人困惑^^

2 个答案:

答案 0 :(得分:1)

一种解决方案是设置 hibernate.default_schema 属性以适合您的用户(在持久性单元中或使用env属性) -Dhibernate.default_schema = YOUR_SCHEMA jvm param)。

其他解决方案是撤消访问用户其他架构的权限。这也不应该被允许因为有些安全问题(除非特定用户需要访问它)。

答案 1 :(得分:0)

select t.* 
  from user2.table1 t