[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 メーリングリストの案内