[Seasar-user:1216] Re: DatabaseMetaDataUtil.getPrimaryKeySet について
Yasuo Higa
higa
2004年 11月 25日 (木) 18:30:35 JST
<[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 メーリングリストの案内