[Seasar-user:19396] Re: dataSourceNameはnullあるいは空であってはいけません

吉村 実 [E-MAIL ADDRESS DELETED]
2010年 2月 26日 (金) 21:15:41 JST


小林様

ご回答ありがとうございます。

ということは、やはり
http://s2container.seasar.org/2.4/ja/jdbc.html
の「同じ種類のデータソースを動的に切り替える」になりますでしょうか。

つたなくて申し訳ないのですが、
今回行っているのがseasarの既存のアプリの
バージョンアップ(下記※1)でして、
以前のバージョンにおいては、
「プログラムでは、org.seasar.extension.datasource.DataSourceFactoryを使って
データソース名を設定します。」
のようなことはやっていないようで、
下記※2のようなやり方をしているようなのですが、
バージョンアップに伴い、このやり方ではダメになったりすることは
ありますでしょうか。





※1
バージョンアップ内容

s2-dao-1.0.35.jar
s2-dao-tiger-1.0.35.jar
s2-extension-2.3.11.jar
s2-framework-2.3.11.jar
s2-struts-1.2.5.jar
s2-struts-tiger-1.2.5.jar
s2-tiger-2.3.9.jar
struts-1.2.9.jar

から

s2-dao-1.0.50.jar
s2-dao-tiger-1.0.50.jar
s2-extension-2.4.38.jar
s2-framework-2.4.38.jar
s2-struts-1.3.1.jar
s2-struts-tiger-1.3.1.jar
s2-tiger-2.4.38.jar
struts-core-1.3.10.jar



※2

「hogeX.dicon」

  <!-- auto registration -->
	<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRe
gister">
		<property name="autoNaming">
			<component
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
		</property>
		<initMethod name="addClassPattern">
			<arg>"jp.go.hoge.dao"</arg>
			<arg>".*Dao"</arg>
		</initMethod>
	</component>
	<component
class="org.seasar.framework.container.autoregister.AspectAutoRegister">
		<property
name="interceptor">allaop.daoInterceptorChain</property>
		<initMethod name="addClassPattern">
			<arg>"jp.go.hoge.dao"</arg>
			<arg>".*Dao"</arg>
		</initMethod>
	</component>



「hogeA.dicon」

    <!-- auto registration -->
	<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRe
gister">
		<property name="autoNaming">
			<component
class="org.seasar.framework.container.autoregister.DefaultAutoNaming">
				<initMethod name="addReplaceRule">
					<arg>"$"</arg>
					<arg>"ForHogeA"</arg>
				</initMethod>
			</component>
		</property>
		<initMethod name="addClassPattern">
			<arg>"jp.go.hoge.dao"</arg>
			<arg>".*Dao"</arg>
		</initMethod>
	</component>
	<component
class="org.seasar.framework.container.autoregister.AspectAutoRegister">
		<property
name="interceptor">allaop.daoInterceptorChainForHogeA</property>
		<initMethod name="addClassPattern">
			<arg>"jp.go.hoge.dao"</arg>
			<arg>".*Dao"</arg>
		</initMethod>
	</component>



■プログラム

「TttInitServiceImpl.java」

// 検索Dao初期化
if ( referDB.isHogeADB() == true ) {
	// 運用DBDao
	aaaForm.setDataDao( tttForHogeA );

} else {
	// 作業DBDao
	aaaForm.setDataDao( ttt );

}


↓↓↓


「TttListCommonServiceImpl」

public List<tttData> searchByCondition4List( AaaForm aaaForm) {

	// 検索実行
	return aaaForm.getDataDao().findBySearchList( );
}



以上、
宜しくお願い致します。


> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Koichi Kobayashi
> Sent: Friday, February 26, 2010 8:21 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:19395] Re: dataSourceNameはnullあるいは空であっ
> てはいけません
>
> 小林 (koichik) です.
>
> Date:    Fri, 26 Feb 2010 20:10:13 +0900
> From:    吉村 実 <[E-MAIL ADDRESS DELETED]>
> To:      <[E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:19394] Re: dataSourceNameはnullあるいは空であっ
> てはいけません
>
> > Oracleの異なるテーブルスペースも
> > 「異なった種類のデータソース」に
> > 該当しますでしょうか。
>
> テーブルスペースはあまり関係ありません.
> 一つのスキーマで複数のテーブルスペースを
> 使うこともできたりするので,それだけで
> 判断することはできません.
>
> 複数のデータソースから見えるテーブルの
> 名前や構造が異なっているなら該当します.
>
> 異なった種類のデータソース
> ----------------------------------------------------------------------
> 顧客DBと商品DBのように、異なった種類のDBに接続する複数のデータソース
>> 使い分ける場合
> ----------------------------------------------------------------------
>
> 同じ種類のデータソース
> ----------------------------------------------------------------------
> 顧客DBが複数のDBに分割されているなど、同じ種類のDB (DBMSの種類や
> スキーマ内の構成が同じ) に接続するデータソースを、クライアントの
> 属性などにより動的に切り替えたい場合
> ----------------------------------------------------------------------
>
> どのデータソースからも同じ名前と構造の
> テーブルしか見えないのなら後者です.
> その場合,データソースが何組あっても
> Dao は一組になります.
>
>
> --
> <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>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user




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