Hibernate:初始化单个对象的两个数据源

时间:2012-07-20 06:09:32

标签: oracle spring hibernate datasource

我有两个独立的数据库模式(或Oracle术语中的2个用户表) - schemaA和schemaB。

schemaA和其他表一样,有表:

domain(id NUMBER PK, description(VARCHAR2(10))

schemaB有表格:

q_user(id NUMBER PK, username VARCHAR2(8) NOT NULL, domain_id NUMBER, CONSTRAINT foreign key references schemaA.domain(id))

Java类QUser具有以下属性: Long id, String username, Domain domain

问题:是否可以使用两个不同的数据源(schemaA和schemaB)配置Hibernate初始化Quser对象?如果是这样,我该怎么做?

我也在使用Spring 3,Hibernate 3.6和Oracle 10g。

我遇到了Spring技术来定义多个数据源并动态交换它们,但我不确定这可以用来初始化单个对象。

任何帮助表示赞赏。 感谢

1 个答案:

答案 0 :(得分:1)

在您的域映射中,您也可以输入架构名称。

使用XML:

<class name="Domain" table="domain" catalog="schemaA">

带注释:

@Table(name = "domain", schema = "schemaA")

然后,您不需要多个数据源。您设置了一个使用 schemaB 用户连接的单个数据源(因为在 schemaB 表中您有权访问 schemaA table - 因此是外键。)