[Seasar-user:17702] 複数データソース時のEntityManagerの挙動について

duran [E-MAIL ADDRESS DELETED]
2009年 6月 11日 (木) 15:15:17 JST


和田と申します。

今、複数のDBに接続するWebアプリを作成しています。
その中で下記の問題に当たりました。

■現象
データベースへの接続定義を設定しているdiconファイルの、
順番に接続先が左右される。

jdbc.diconから foo_jdbc.dicon bar_jdbc.diconを以下のように
インクルードします。
※それぞれ違うDBに接続

<include path="foo_jdbc.dicon"/>
<include path="bar_jdbc.dicon"/>

customizer.diconでは対応するパッケージ設定を以下のようにします。
foo_jdbc => org.foo.dao
bar_jdbc => org.bar.dao

このように設定した場合に、
org.bar.dao.impl で EntityManagerを使用したDaoを作成し、
実行した場合に、foo_jdbc.diconのDBが参照されているため、
テーブルが見つからないので「SELECT項目がありません」とエラーになります。

jdbc.diconのインクルードの順序を変えると、
正常に実行できるようです。
ただし、逆にorg.foo.dao.impl で EntityManagerを使用した場合は、
bar_jdbc.diconのDBを参照してしまいます。

EntityManagerを使用しない場合は、正常に動作します。

何か設定が悪いのでしょうか?

以上、よろしくお願いします。


Seasar-user メーリングリストの案内