[seasar-dotnet:1193] [DBFlute] 予約語とテーブル名の重複について

高井朋幸 [E-MAIL ADDRESS DELETED]
2008年 12月 1日 (月) 20:12:57 JST


久保様
高井です。

DBFlute 0.8.7 リリースお疲れ様です、というところすみませんが
予約語とテーブル名が重なった場合の対処についてアドバイスいただ
ければと思います。

SQLServer2005 で「User」のようにテーブル名がデータベースの予約語
とかぶっていると jdbc.bat や SQL 発行で以下のようにエラーが発生
してしまいます。

-------------------------
SQLException: primaryKeyColumnName=USER_ID tableMetaInfo=dbo.USER(TABLE): nu
ll ignoredMessage=キーワード 'User' 付近に不適切な構文があります。
-------------------------

とりあえず User テーブルを無視リストに加えて JDBC.bat 実行後に User
テーブル用の schema.xml を書き加えて強引に generate.bat で
C# のクラスを作って対処しました (table name="User" として)。
それを利用すると発行される SQL でやはり同じように SQLException
が発生してしまいます。

C# のクラスは作成できているので、
ベタなコーディングでもよいのですが、発行される SQL のテーブル名に
ダブルコーテーションを付加するなどの回避策はないでしょうか?
Dbm 名前空間のソースをいじっても変更されなかったようなのでどのあたりを
いじればいいか教えていただけると幸いです。

本当は根本原因を解決したいところなのですが…。
既存のシステムで利用されている DB なのでテーブル名を変更する
ことができなくて頭が痛いところです。
しかも、CRUD すべて対象だし・・・

よろしくお願いいたします。



seasar-dotnet メーリングリストの案内