我的设置:
我正在使用Hibernate 5
使用Oracle JDBC驱动程序oracle.jdbc.driver.OracleDriver
和方言org.hibernate.dialect.Oracle9iDialect
。
我的模型类看起来像这样:
@Entity
@Table(name = "MyModel1", catalog = "DB1")
public class MyModel1 {...}
@Entity
@Table(name = "MyModel2", catalog = "DB2")
public class MyModel2 {...}
我的问题: 我有多个模型类,它们分布在同一个DBserver上的不同数据库中。 我必须使用单个DB连接来查询我的所有模型类,所以我连接到DB1进行查询。 如果Hibernate会生成像
这样的SQL查询,那么一切都会好的select * from DB1.MyModel1;
但事实并非如此。由于某种原因,它在没有目录的情况下进行查询。
select * from MyModel1;
这对于MyModel1来说很好,因为我连接到DB1但是我需要MyModel2的完全限定查询,否则它会引发异常,因为在DB1中找不到MyModel2的表。
你知道如何用Hibernate或JPA或方言来构建具有完全限定表名的查询吗?
答案 0 :(得分:1)
使用Oracle,您必须使用架构属性:
@Entity
@Table(name = "MyModel1", schema= "DB1")
public class MyModel1 {...}
@Entity
@Table(name = "MyModel2", schema= "DB2")
public class MyModel2 {...}