0

2つの別々のdbスキーマ(または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

質問:2つの異なるデータソース(schemaAとschemaB)を使用してQUserオブジェクトを初期化するようにHibernateを構成することは可能ですか?もしそうなら、どうすればいいですか?

また、Spring 3、Hibernate 3.6、およびOracle10gを使用しています。

複数のデータソースを定義して動的にスワップするSpringの手法に出くわしましたが、これを使用して単一のオブジェクトを初期化できるかどうかはわかりません。

助けていただければ幸いです。ありがとう

4

1 に答える 1

1

ドメインマッピングでは、スキーマ名も入力できます。

XMLの場合:

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

注釈付き:

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

そうすれば、複数のデータソースは必要ありません。schemaBユーザーを使用して接続する単一のデータソースを設定します( schemaBテーブルでは、 schemaAテーブルにアクセスする権限があるため、外部キーになります)。

于 2012-07-20T06:22:54.760 に答える