[Seasar-user:17913] Re: S2JDBC-Gen の gen-ddl が生成する DDL での主キーのカラム順について
naomix,a go go
[E-MAIL ADDRESS DELETED]
2009年 7月 2日 (木) 18:28:13 JST
中村様。
うまくいきました。ありがとうございました。
丁寧な説明で助かりました。
:::::::::::::::::::::::::::::::::
gene
--- Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:
> 中村(taedium)です。
>
> >
> ということは、0.9.1までは、エンティティクラスで宣言した順番だったということでし
ょ
> > うか。
>
> はい、そうです。
>
> >
> 今のバージョンで、DDLのカラムの順番を、エンティティクラスで宣言した順番通りに
> > することはできないでしょうか。
>
> カラムの並び替えは、
> org.seasar.extension.jdbc.gen.internal.desc.TableDescFactoryImplクラス
> のdoColumnDescメソッドで行っているのですが、そこを
> 差し替えればできます。
>
> 以下に手順を説明します。
>
> 1)org.seasar.extension.jdbc.gen.internal.desc.TableDescFactoryImplを
> 継承したクラスを作成し、doColumnDescメソッドをオーバーライドします。
> 元の処理をコピって、Collections.sortを
> 呼び出さないようにします。
>
> 2)org.seasar.extension.jdbc.gen.internal.desc.DatabaseDescFactoryImplを
> 継承したクラスを作成し、createTableDescFactoryメソッドを
> オーバーライドします。
> 元の処理をコピって、1)で作成したクラスのインスタンスを返すようにします。
>
> 3)org.seasar.extension.jdbc.gen.internal.factory.FactoryImplを
> 継承したクラスを作成し、createDatabaseDescFactoryメソッドを
> オーバーライドします。
> そこでは2)で作成したクラスのインスタンスを返すようにします。
>
> 4)Gen-DdlタスクのfactoryClassNameパラメータに3)で作成した
> クラスの名前を指定します。
>
> これで、Gen-Ddlを呼び出してみてください。
Seasar-user メーリングリストの案内