[Seasar-user:1214] DatabaseMetaDataUtil.getPrimaryKeySetについて
"SRI 深尾"
fukao
2004年 11月 25日 (木) 18:12:15 JST
はじめまして。深尾と申します。
現在S2DAOを新規システムで使用させていただこうと思い
単純な検証作業を行っているのですが、
「更新SQLの自動生成」において
updateメソッドが発行するSQLのprimaryKey項目表記が
小文字になってしまうという現象があります。
データベースはSybaseなのですが
テスト的に MST_TANTO(TANTCD, TANTNM, UPDATE_DATE) PKはTANTCD
のテーブルを作成し実行したところ
insert では
INSERT INTO MST_TANTO (UPDATE_DATE, TANTCD, TANTNM)
VALUES('2004-11-25 17.31.29', 100, '名前')
のSQLが発行されて問題ないのですが、
update では
UPDATE MST_TANTO SET UPDATE_DATE = '2004-11-25 17.31.33', TANTNM = '名前2'
WHERE tantcd = 100 AND UPDATE_DATE = '2004-11-25 17.31.29'
となり「tantcd」が小文字になってSQLエラーとなってしまいます。
(Sybaseは大文字・小文字が区別されます)
なぜ「tantcd」だけが小文字になるのかをソースを追ってみたのですが、
DatabaseMetaDataUtil.getPrimaryKeySetにおいて
CaseInsensitiveSetからCaseInsensitiveMapを使用しており
その中で、toLowerCaseが行われているようです。
これは仕様として考えればよろしいでしょうか。
その場合、今回の現象に対する回避策等ございますでしょうか。
(見当違いのことを言っていましたらすみません。ご指摘下さい)
よろしくお願い致します。
---------------------------------
Sophia Research Institute Inc
nobuyuki fukao
Seasar-user メーリングリストの案内