[Seasar-user:17174] Re: [S2JDBC-Gen]DDLファイルにダブルクォーテーション
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2009年 4月 3日 (金) 00:26:15 JST
中村(taedium)です。
> s2jdbc-gen-build.xmlを使用してDDLファイルを作る際、
> テーブル名がダブルクォーテーションで括られたエン
> ティティについては、
> 生成されるファイル名にもクォーテーションがついて
> います。
今は、ダブルクォテーションだからといって
なんら特別扱いしていませんが、
自動で取り除いてしまってもいいかもしれないですね。
(それで困るケースがない気がする)
> もし対応策があるようでしたらご教授ください。
S2JDBC-Genで用意された拡張ポイントを利用できます。
手順としては次のとおりです。
1.TableDescFactoryImpl#buildCanonicalName()をオーバーライドし
ダブルクォテーションを取り除いた値を返すクラスを作成する。
2.DatabaseDescFactoryImpl#createTableDescFactory()をオーバーライドし
1で作成したクラスのインスタンスを返すようにする。
3.FactoryImpl#createDatabaseDescFactory()をオーバーライドし
2で作成したクラスのインタスタンスを返すようにする。
4.Gen-DdlなどのタスクのfactoryClassNameパラメータに
3で作成したクラスの名前を指定する。
上記の方法が面倒くさいという場合は、
アドホックな方法ですが、
TableUtil.buildCanonicalTableName()というstaticメソッドを
書き換えてしまうという荒技?もあります。
最終的にはここで返された値がファイル名に使われるので
ダブルクォテーションを取り除いた値を返すようにしてください。
--
Toshihiro Nakamura
Seasar-user メーリングリストの案内