[Seasar-user:1220] Re: DatabaseMetaDataUtil.getPrimaryKeySet について

"SRI 深尾" fukao
2004年 11月 25日 (木) 19:06:22 JST


SRI 深尾です。

以下の用に変更したところ、
primaryKeys_に大文字の項目名がそのまま入りました。
これで検証を続けていきます。
ありがとうございました。

この変更は項目名がセンシティブな
DBのみの例外的な対応になるのでしょうか。
今後リリースされるS2には反映されますでしょうか。


Yasuo Higa wrote:
> <[E-MAIL ADDRESS DELETED]> の、
>    "[Seasar-user:1214] DatabaseMetaDataUtil.getPrimaryKeySetについて" において、
>    ""SRI 深尾" <[E-MAIL ADDRESS DELETED]>"さんは書きました:
> 
> ひがです。
> 
> > はじめまして。深尾と申します。
> > 
> > 現在S2DAOを新規システムで使用させていただこうと思い
> > 単純な検証作業を行っているのですが、
> > 
> > 「更新SQLの自動生成」において
> > updateメソッドが発行するSQLのprimaryKey項目表記が
> > 小文字になってしまうという現象があります。
> > 
> > これは仕様として考えればよろしいでしょうか。
> > その場合、今回の現象に対する回避策等ございますでしょうか。
> > (見当違いのことを言っていましたらすみません。ご指摘下さい)
> > 
> org.seasar.dao.impl.BeanMetaDataImplの257行目の
> setupDatabaseMetaDataを下記のように書き換えるとどうですか。
> 
> private void setupDatabaseMetaData(DatabaseMetaData dbMetaData) {
>   Set primaryKeySet = DatabaseMetaDataUtil.getPrimaryKeySet(dbMetaData,
>     tableName_);
>   Set columnSet = DatabaseMetaDataUtil.getColumnSet(dbMetaData,
>     tableName_);
>   List pkeyList = new ArrayList();
>   for (int i = 0; i < getPropertyTypeSize(); ++i) {
>     PropertyType pt = getPropertyType(i);
>     if (primaryKeySet.contains(pt.getColumnName())) {
>       pt.setPrimaryKey(true);
>       pkeyList.add(pt.getColumnName());
>     } else {
>       pt.setPrimaryKey(false);
>     }
>     if (columnSet.contains(pt.getColumnName())) {
>       pt.setPersistent(true);
>     } else {
>       pt.setPersistent(false);
>     }
>   }
>   primaryKeys_ = (String[]) pkeyList.toArray(new String[pkeyList.size()]);
>   setupAutoInsertSql();
>   setupAutoUpdateSql();
>   setupAutoDeleteSql();
> }
> ---
> Yasuo Higa <[E-MAIL ADDRESS DELETED]>
> INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user

+++++++++++++++++++++++++++++++++++++++++++
+ 株式会社 ソフィア総合研究所
+  システム開発部  深尾 信之
+
+ 大垣市加賀野4丁目1番地7
+ ソフトピアジャパンセンタービル7階
+ Tel.0584-77-1263 Fax.0584-82-7153
+++++++++++++++++++++++++++++++++++++++++++



Seasar-user メーリングリストの案内