[Seasar-user:20571] Re: 複数の永続ユニット使用について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2011年 2月 8日 (火) 01:30:00 JST
小林 (koichik) です.
Date: Mon, 07 Feb 2011 02:54:59 +0900
From: oh <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:20568] Re: 複数の永続ユニット使用について
> それとは別に、DataAccessor#readDb で発行される EntityManager#flush
> が、実際に DB に更新 SQL を発行しなくてもアサーションが可能なのか
> というところなのですが。
できません.
> 再三 update が発行されるかは問題ないとおっしゃられていますので
> ちょっと混乱してきました。
検証する DB (DataSource) と「違う」DB (DataSource)
に対して update が発行されてもされなくても
問題ないと書いているだけですが.
検証する側の DB (DataSource) の話ではありません.
↓このように.
[Seasar-user:20567]
> > ・ejb1 が em1 経由で ds1 を更新
> > ・ejb2 が em2 経由で ds2 を更新
> > ・da1 が em1 を flush() してデータを検証
> > ・ロールバック
> >
> > という流れになった場合,em2 は update を
> > 発行しませんが,da1(ds1) の検証には何も問題は
> > ありません.
> > DataAccessor の役割はそういうものです.
em1/ds1 側を検証するのに,em2 側の update が
発行されなくても問題ないと書いているだけです.
em2 側を検証する場合の話ではありません.
言い換えると,em2/ds2 側を検証するのに,
em1 側の update が発行されなくても問題ないと
書いているだけです.
それなのに,
> EntityManager sc01 -> DataSource1 -> local DB
> EntityManager sc02 -> DataSource2 -> 別マシンの DB
(略)
> で、EntityManager の再設定を行わずに DataSource のみの設定を行うように
> 変更してみます
なぜそうなるのか...
[Seasar-user:20567]
> > em2 側を検証するなら,da2 を用意して,
> > em2 と同時に ds2 も設定する必要があります.
EntityManager と「同時に」DataSource も
設定する必要があると書いているのですが,
どうして DataSource「のみ」設定しようと
考えたのでしょうか?
[Seasar-user:20558]
> > DataAccessor には,それがアクセスする
> > DataSource と同じ DataSource にアクセスする
> > EntityManager を設定してください.
「同じ」DataSource にアクセスする
EntityManager を設定してくださいと書いて
いるのですが,どうして「別の」DataSource を
設定しようと考えたのでしょうか?
そもそもは
[Seasar-user:20557]
> > > public void setup() {
> > > DataAccessorImpl da2 = (DataAccessorImpl) da;
> > > da2.setEntityManager((EntityManager) container
> > > .getComponent("sc02EntityManager"));
> > > }
が,DataSource を変えずに EntityManager だけ
変更していたため,DataSource1 を検証するなら
(DataSource の設定が正しい場合) EntityManager を
sc02 にしても意味がない (DataSource2 側の update が
発行されてもされなくても DataSource1 側の DB には
関係ない) ということを書いていたわけです.
ここでも言い換えると,sc02 側を検証したいなら,
DataSource も DataSource2 に設定しなくては
意味がないということを書いていたわけです.
それなのに,[Seasar-user:20568] ではその
「意味がない」ことをわざわざやっているようにしか
見えません.
--
<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 メーリングリストの案内