[DAO-100] ColumnやTableアノテーションが\"で囲まれていたら、そのまま出力する([Seasar-user:8147])([seasar-s2dao-dev:270]) Created: 21/Jun/07  Updated: 13/Sep/07

Status: Open
Project: S2Dao
Component/s: s2dao
Affects Version/s: 1.0.43
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: azusa Assignee: manhole
Resolution: Unresolved Votes: 0
Labels: None


 Description   

[seasar-s2dao-dev:271]より引用。

■案2

ColumnやTableアノテーションに

String TABLE = "\"FROM\""

とクォート付きで書かれていたら、そのまま出力するというもの。
メタデータと比較するときには、メタデータ側にはクォートが付い
ていないので、クォートを外して比較することになりそうです。



 Comments   
Comment by manhole [ 01/Aug/07 ]

MSSQLでは、"[FROM]"のように大括弧である必要があるかも、という話を聞きました。
詳しくは、追ってコメントいただけるかと思います。

Comment by Anonymous [ 02/Aug/07 ]

初めまして、西方と申します。
本間さんがおっしゃっているように、SQL Serverでは下記のように予約語のエスケープに "[" , "]" を使用します。
http://technet.microsoft.com/ja-jp/library/ms176027.aspx

"\~\"でのエスケープに加えて、"[~]"のエスケープもサポートしていただけませんでしょうか。
よろしくお願いいたします。

Comment by taedium [ 13/Sep/07 ]

1.0.47から追加されるFastPropertyTypeFactoryBuilderを使うとアノテーションに指定されて名称がそのまま使われるので、クォート付きのSQLの発行はできることはできますね。TableNamingやColumnNamingの実装を作成すれば、デフォルトでクォート付きも実現可能だと思います。

FastPropertyTypeFactoryBuilderを使わないときは対応が必要ですが、上記の方法で満足してもらえるならばそれでいいのかなぁと思います。改めて要望を確認してみたいですね。

Comment by taedium [ 13/Sep/07 ]

↑と思ったのですが、ResultSetのメタデータとカラム名を比較しているところはクォートを考慮した比較が必要なのでFastPropertyTypeFactoryBuilderを使っても解決しませんでした。すみません。。。
あと、Argumentアノテーションにクォートつきで指定した場合の挙動なども確認する必要がありそうですね。

Generated at Sat Jul 24 16:18:28 JST 2021 using JIRA 7.9.2#79002-sha1:3bb15b68ecd99a30eb364c4c1a393359bcad6278.