[Seasar-user:13480] Re: [DBFlute]自動生成されるクラス名を変更したい

kubo [E-MAIL ADDRESS DELETED]
2008年 3月 30日 (日) 19:37:57 JST


久保です。

こんばんは、森脇さん

ひとまず答えとしては、現状はサポートされていません。
どうしても「HogeFugoTbl」となってしまいます。

自動生成の途中の経過で色々頑張ればできるようになるかも
しれませんが、影響範囲が掴みにくいのと、発行するSQLは
もとのテーブルでなければならないということで、ちょっと
難しいかもしれません。(すぐの対応が難しいという意味です)

現状のままでもDB次第では回避可能かもしれません。
DB2のエリアスやOracleのシノニムで、TBLを除去したものを作り、
自動生成対象からテーブルを外してエリアスもしくはシノニムだけを
対象にするようにすれば実現できるかもしれません。
DB2では(大分昔ですが)この方法を試してことがあります。
Oracleではちょっと試したこと無いです。

自動生成対象の設定は、例えばDB2のエリアスの場合は

torque.database.type.list = list:{ALIAS}

となります。デフォルトは「list:{TABLE;VIEW}」
java.sql.DatabaseMetaData#getTables()の第4引数に指定する値です。

2008/3/29 k. moriwaki <[E-MAIL ADDRESS DELETED]>:
> 森脇と申します。
>
>  DBFluteの機能についての質問です。
>
>  自動生成されるクラスの名前をDBのテーブル名から特定文字を削除したもの
>  としたいのですが、現在そのような機能はサポートされていますでしょうか?
>     例)
>         テーブル名:hoge_fugo_tbl
>>         Java名    :HogeFugo
>
>
>  試した事
>     スキーマ情報の取得後、出力されたschema.xmlのtableタグにjavaName属性を追加。
>  結果
>     クラス名は変わったのですがBaseEntityの1:n、n:1、1:1関連のメソッドが
>     元のテーブルの名前(上記例で言うとgetHogeFugoではなくgetHogeFugoTbl)に
>     なっているのに、BaseBehaviorクラスは 変更後の名前(getHogeFugo)のメソッドを
>     参照しているためコンパイルエラーとなった。
>  _______________________________________________
>  Seasar-user mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>


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