[seasar-dotnet:821] Re: Quillを使ったときのS2Daoについて

koyak [E-MAIL ADDRESS DELETED]
2008年 5月 2日 (金) 07:21:48 JST


藤井さん

小谷です。

Quillのインジェクションの対象となっているクラスに[Transaction]属性が
使われているクラスはありますでしょうか。

[Transaction]属性がどこか一つでも使われていれば
TransactionContextを生成してTxDataSourceにセットする、ということを
行っています。

QuillTestCaseの場合はテストメソッドに標準でトランザクションを
かけるためにQuillTestCase側でTransactionContextなどの設定を行っています。

[Transaction]属性が必要な理由はトランザクション分離レベルなどの
設定をメソッドごとなどでも指定できるようにするため、なのですが
TxDataSourceが使われていた場合は予めデフォルトの設定を適用しておいた方が
いいかもしれませんね。

2008/05/02 2:33 Hiroaki Fujii <[E-MAIL ADDRESS DELETED]>:
> 藤井です。
>
>  すいません。
>  QuillTestCaseのサブクラスで実行したときは問題ないのですが、WindowsFormの
>  中から実行したときにどうもTransactionContextオブジェクトがnullのようで、
>  コネクションが取得できず、NullReferenceエラーになります。
>
>  つぎのインスタンスが標準では生成されるようなことがマニュアルには記載され
>  ています。
>  ・Seasar.Extension.Tx.Impl.TransactionContext
>  ・Seasar.Extension.Tx.Impl.LocalRequiredTxHandler
>  ・Seasar.Extension.Tx.TransactionInterceptor
>  このTrasactionContextオブジェクトがセットされることはないのでしょうか?
>
>  下記が、設定したapp.configの中身です。何か設定が抜けていたら、教えて
>  ください。
>  この設定ではQuillTestCaseを使ったときは問題ありません。
>  Accessのファイルに、OleDbで接続しています。
>  DataSourceの設定が取得し、設定されていることは確認しました。
>
>   <quill>
>     <dataSources>
>       <dataSource name="ds">
>         <provider>OleDb</provider>
>         <connectionString>"Provider=Microsoft.Jet.OLEDB.4.0;User
>  ID=admin;Data Source=./sample.mdb"</connectionString>
>         <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
>       </dataSource>
>     </dataSources>
>     <assemblys>
>       <assembly>Seasar</assembly>
>       <assembly>Seasar.Dao</assembly>
>       <assembly>Seasar.Windows</assembly>
>
>       <assembly>S2FormExample.Logics</assembly>
>     </assemblys>
>   </quill>
>  _______________________________________________
>  seasar-dotnet mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内