[Seasar-user:1747] アンダーバーを含むカラム名の自動マッピングについて
AGATA Toshitaka
agata
2005年 4月 5日 (火) 21:24:23 JST
縣です。
>S2Dao1.0.25
>-カラム名に_がある場合でも自動的にマッピング
> できるようにしました。S2.2.6が必要です。
S2Dao1.0.25の_がある場合の自動マッピングについて要望です。
自動マッピングが標準機能として実装されて、非常に助かっています。
しかし、TABLEアノテーションで指定されたテーブル以外のカラムでは、
自動的にマッピングされないようなので、ちょっと困っています。
今はAbstractBeanMetaDataResultSetHandlerを以下のように書き換えて、
対応しています。(パフォーマンスは考慮していません・・・)
ぜひ、標準機能として対応を検討していただけると嬉しいです。
---------------------------------------------------------
org.seasar.dao.impl.AbstractBeanMetaDataResultSetHandler
---------------------------------------------------------
protected Object createRow(ResultSet rs, Set columnNames)
throws SQLException {
Object row = ClassUtil.newInstance(beanMetaData_.getBeanClass());
for (int i = 0; i < beanMetaData_.getPropertyTypeSize(); ++i) {
PropertyType pt = beanMetaData_.getPropertyType(i);
if (columnNames.contains(pt.getColumnName())) {
ValueType valueType = pt.getValueType();
Object value = valueType.getValue(rs, pt.getColumnName());
PropertyDesc pd = pt.getPropertyDesc();
pd.setValue(row, value);
} else {
for (Iterator iter = columnNames.iterator(); iter.hasNext();) {
String columnName = (String)iter.next();
String columnName2 = StringUtil.replace(columnName, "_", "");
if (columnName2.equalsIgnoreCase(pt.getColumnName())) {
ValueType valueType = pt.getValueType();
Object value = valueType.getValue(rs, columnName);
PropertyDesc pd = pt.getPropertyDesc();
pd.setValue(row, value);
}
}
}
}
return row;
}
---------------------------------------------------------
Seasar-user メーリングリストの案内