[Seasar-user:7068] Re: [DBFlute] 複数DBアクセス時のallcommonについて

kubo [E-MAIL ADDRESS DELETED]
2007年 4月 5日 (木) 17:03:58 JST


久保です。

> DBFluteにて2つのDBにアクセスするために、DBFlute.jar、dbflute.dicon、jdbc.diconをそれぞれ2つずつ作成し、
> DBFluteのルートパッケージを変えています。
> 
> その際、1つのクラス内で2つのDBにアクセスする際に、
> allcommon群のクラスがかぶってしまいます。(同名クラスで別パッケージ)
> 
> 現在、ListResultBeanが重複しているので、importせずに
> 都度フルパス指定することで回避しています。
> 
> このようなケースで別によい解決方法がございましたら
> ご教授頂けないでしょうか?

自分の周りでも複数DBでDBFluteが使われ始めたので、
どうにかしたいと考えておりました。

理想としては dbflute-api.jar というような jar を提供して
allcommon で本当に共通のものはそちらに格納するべきかなと
考えておりますが、「必要なjarが一つ増える」ことになり、
ちょっとマイナーバージョンアップではインパクトがでかいかなと
考え、ちょっと行動には移せていません。
(そうなると、ただの自動生成ツールではなくなってまう!?!?)


とりあえずは、「名前が違っていれば良い」というのであれば
build-xxx.propertiesに

torque.projectPrefix = Ld

と指定すると、指定された方のDBFluteのClassの名前の先頭に“Ld”が付きます。
  → LdListResultBean

【BasicPropertiesのProjectPrefixを参照】
http://dbflute.sandbox.seasar.org/ja/basic_properties.html

自分のProjectでは、移行バッチで複数DB参照する際に、
移行元(From)の方のDBFluteには、“Fm”と2文字付けています。
(移行先は画面とかでも利用するメインなので特にPrefixは付けていない)

ただ、projectPrefixを付けた時に、
BehaviorやDaoのComponent名(diconに定義されている名前)に
その「projectPrefix」が付与されないというバグがあり、
今修正中で御座います。
(今だとComponent名がバッティングしてしまう)
(今週末には直して、DBFlute-0.4.4 とするつもりです)


ただ(もう一つ)、米原さんのProjectで既に複数DBで
たくさんのProgramを書かれているようであれば、
projectPrefixを付けると参照している部分が
全てCompileErrorになってしまいます。
その部分はProjectの都合が色々あり、ちょっと自分では判断できない
のですが、申し訳ございませんが、上記のような状況です。






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