[Seasar-user:16209] Re: [S2JPA] PersistenceUnitInfoFactoryImplのDEFAULT_DATASOURCE

Hidenoshin Yoshida [E-MAIL ADDRESS DELETED]
2008年 11月 2日 (日) 09:36:41 JST


吉田(da-yoshi)です。

> 「固定である」というのは、jpa-support.diconを
> オーバーライドしない限り固定であるという意味です。
> 他に何か簡単に変更する方法はあるのでしょうか?
>
> そういった特殊な対策をせずに、自然に使えた方がよいと思ったので。


Seasar2のJPA対応機能におけるDataSourceはあくまで
Seasar2が定義したDataSourceを参照するものです。
複数DataSourceを管理する前提のAppサーバでは
DataSource名は固有の名前を設定することが多いですが
Seaasr2は1アプリケーション内に閉じた管理を行いますので
アプリケーション内で複数DataSourceを扱わない限り
DataSource名はjdbc.diconに予め定義している
jdbc.dataSourceの名前を利用することが多いかと思います。
AppサーバのDataSourceを使う場合でも
jdbc.diconによって名前をjdbc.dataSourceに統一できます。

今回の問題は、敢えてjdbc.dataSource名を使わない場合
または複数のDataSourceを利用する場合
jta-data-sourceだけでなくnon-jta-datasourceも
変更する必要があることだと思います。

S2TopLinkのドキュメントには、複数Unitを利用する場合の説 
明はありますが
複数DataSourceを使う例にはなっておりませんでしたので
複数DataSourceを使う形にドキュメントを変更したいと思います。

デフォルトの挙動は、現状のJPA仕様だとコンテナの意向が反 
映されることになると思います。
Seasar2の場合、前述の通りjdbc.dataSource名という名前が 
デフォルトになりやすい
という背景がありますので、これをJPA利用時のデフォルト名 
として定義し
別の名前にしたい場合に、jpa-support.diconやpersistence.xml 
で変更するという形になっています。


吉田 秀之進
[E-MAIL ADDRESS DELETED]



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