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