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