[Seasar-user:13481] Re: [DBFlute]自動生成されるクラス名を変更したい
k.moriwaki
[E-MAIL ADDRESS DELETED]
2008年 3月 30日 (日) 21:15:51 JST
久保さん
森脇です。回答ありがとうございます。
> ひとまず答えとしては、現状はサポートされていません。
> どうしても「HogeFugoTbl」となってしまいます。
サポートされていないのですね、了解しました。
> DB2のエリアスやOracleのシノニムで、TBLを除去したものを作り、
> 自動生成対象からテーブルを外してエリアスもしくはシノニムだけを
> 対象にするようにすれば実現できるかもしれません。
今回はMySQLを使用するのと、あまりDBを自由にいじれないので断念します。
ただ、S2Dao単体で使う場合はTABLEアノテーションやCOLUMNアノテーションで
テーブル名等が指定できるので、今後DBFluteでも対応していただけるとうれしいです。
以上です。
またDBFluteの事で質問するかもしれませんが、よろしくお願いいたします。
08/03/30 に kubo<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 久保です。
>
> こんばんは、森脇さん
>
> ひとまず答えとしては、現状はサポートされていません。
> どうしても「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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内