[Seasar-user:17896] Re: S2JDBC-Gen の gen-ddl が生成する DDL での主キーのカラム順について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2009年 7月 2日 (木) 10:21:30 JST


中村(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を呼び出してみてください。

-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



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