[Seasar-user:20558] Re: 複数の永続ユニット使用について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2011年 2月 6日 (日) 22:00:00 JST


小林 (koichik) です.

Date:    Sun, 06 Feb 2011 21:40:44 +0900
From:    oh <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:20557] Re: 複数の永続ユニット使用について

> またわかりにくい記述をしてしまいましたので追記を。

惜しい.
なぜそこでスタックトレースを付けられないのかと.

> 現状では、s2junit4.dicon 側では sc01 側の EntityManager を使用する
> DataAccessor を一つだけ定義して、sc02 側を使用するモジュールのテストでは
> 
> 	private DataAccessor da;
> 
> 	private Sc2Service service;
> 
> 	private S2Container container;
> 
> 	@PostBindFields
> 	public void setup() {
> 		DataAccessorImpl da2 = (DataAccessorImpl) da;
> 		da2.setEntityManager((EntityManager) container
> 				.getComponent("sc02EntityManager"));
> 	}
> 
> 
> と明示的に EntityManager  を再設定して、動作自体は確認しています。

DataAccessor には,それがアクセスする 
DataSource と同じ DataSource にアクセスする
EntityManager を設定してください.

DataAccessor の EntityManager を変更しても,
それがアクセスする DataSource が変わるわけでは
ありません.

DataAccessor は,それがアクセスする  から
正しくデータを読み込むために,同じ DataSource を
使う EntityManager を事前に flush() するだけです.

単に flush() がしたいなら,EntityManager#flush() を
呼び出してください.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
    <property name="twitter">"http://twitter.com/koichik"</property>
</component>



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