[Seasar-user:11342] Re: [DBFlute]isCommonColu mnInterceptingOnBehavior Filter について

kubo [E-MAIL ADDRESS DELETED]
2007年 10月 31日 (水) 12:53:38 JST


久保です。

> >インターセプタのポイントをDaoにされていないでしょうか?
> 
> その通りでした。
> そうですね。今回Behaviorに対する対応なんで、
> Daoへのインターセプターは対象外なんですよね。。
> Daoを直接使用しないことにしているので、
> torque.commonColumnSetupInterceptorAspectPoint = dao
> を削除して適応します。

はい、お手数ですがよろしくお願いします。


> また、ちょっと話は変わるんですが、
> S2DAOのドキュメントの「dao.dicon」−「Daoの初期化を高速化する」
> のところで
> 
> #このコンポーネントを利用するには
> #org.seasar.dao.impl.PropertyTypeFactoryBuilderImplを
> #org.seasar.dao.impl.FastPropertyTypeFactoryBuilderに
> 差し替えてください。 
> 
> とあるんですが、DBFluteの自動生成で作成される
> dao.diconには、この変更はされないですよね?
> 
> DBFluteは未対応ということでしょうか?
> 
> 初期化の高速化が可能であれば、是非導入したいと
> 思っているためご確認させて頂きたく。

DBFlute-0.5.7にて対応致します。
実は、既に公開していないSNAPSHOTでは対応済みで、
実際に自分の関わっているプロジェクトで採用して
JUnitの単体テストの通し実行がかなり速くなりました。
開発者もテストが気軽に実行できるようになったと評判も良いです。
(「論理的なコネクションを取得しました」ログも減ります)

但し、FastPropertyTypeFactoryBuilderに差し替えるだけでは実現はできず、
DBFlute内部的には拡張をしています。

FastPropertyTypeFactoryBuilderは、getで始まるプロパティを全て
永続カラムとして扱いますが、これだとEntityに独自の導出プロパティとか
を作ったりした場合に、それも永続カラムとして判断されてしまい、
自動生成されるSQLのSelect句がおかしなことになります。

なので、DBFluteでは、「Columnアノテーション」が付いているものを
永続カラムとして扱うように調整して、実現をしています。
(後はIdentityの使ってないテーブルにてもIDアノテーションが必要など
 細かな調整が必要でした)

なので、ローカルでちょっとdbflute.diconを修正して、
FastPropertyTypeFactoryBuilderを利用して試してみよう
と思っても動かないのでご注意下さい。





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