[seasar-s2dao-dev:300] Re: [Seasar-user:7923] [S2Dao] 名前変換規約におけるアンダースコアの扱い

SETO Azusa [E-MAIL ADDRESS DELETED]
2007年 6月 25日 (月) 14:04:21 JST


せとあずさです。

----- Original Message ----- 
From: "Hirotaka HONMA" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Monday, June 25, 2007 1:39 PM
Subject: [seasar-s2dao-dev:299] Re: [Seasar-user:7923] [S2Dao] 名前変換規約におけるアンダースコアの扱い


> もう1つ、
> fromEntityNameToTableNameがDaoNamingConventionではなく
> BeanMetaDataCustomizerにあるのは、どういった理由ですか?

最初はBeanMetaDataFactoryImplのプロパティで切り替えるよう
してたのですが、
(http://svn.seasar.org/browse/branches/s2dao-1.0.x/s2-dao/src/main/resources/dao.dicon?root=s2dao&r1=915&r2=914&pathrev=915)
(1) テーブル名の大文字小文字を区別する場合にユーザ側の
カスタマイズによって対応可能にしたい
(2)変換方法をコンポーネントとして登録することによって、
Employee(クラス名) → TBL_EMPLOYEE(テーブル名)のような変換にもカスタマイズ
で対応可能になる

といった狙いがあり、BeanMetaDataCustomizerを設けました。
単に変換する/しないの2択ならDaoNamingConventionの
プロパティでもいいのでしょうが、そうでもないので。

> XxxxCustomizerという名前から
> org.seasar.framework.container.ComponentCustomizerを連想した
> のですが、処理内容がNamingConventionに近かったので気になった
> のです。

S2のComponentCustomizerのことを考えるとBeanMetaDataCustomizer
という名前は変えてもいいのかもしれませんが、(TableNameStrategy?)
変換方法をDaoNamingConventionのプロパティでなくdao.diconに
登録するコンポーネントで決めるという方法自体はそのままでいいと
思うのですが、どうでしょう?

あと、

From: "Hirotaka HONMA" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Monday, June 25, 2007 1:20 PM
Subject: [seasar-s2dao-dev:298] Re: [Seasar-user:7923] [S2Dao] 名前変換規約におけるアンダースコアの扱い
>> (1)DatabaseMetaDataを見る場所を増やしたくない
>
> これの理由をお聞きして良いでしょうか?

のほうですが、これはあちらこちらでDatabaseMetaDataの取得が
遅いといわれているので、パフォーマンス上ボトルネックになり得る
場所を増やしたくないというという理由です。もっともDatabaseMetaDataが
どれくらい遅いかプロファイリングしたわけではないので定量的な
根拠があるわけではないですが...



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