gvSIG bugs #2190
Error Postgresql guardando una feature de tipo int2
| Status: | Closed | % Done: | 0% | |
|---|---|---|---|---|
| Priority: | Normal | Spent time: | - | |
| Assignee: | ||||
| Category: | - | |||
| Target version: | 2.1.0-2217-devel | |||
| Severity: | Add-on version: | |||
| gvSIG version: | 2.1.0 | Add-on build: | ||
| gvSIG build: | Add-on resolve version: | |||
| Operative System: | Add-on resolve build: | |||
| Keywords: | Proyecto: | |||
| Has patch: | No | Hito: | ||
| Add-on name: | Unknown |
Description
Se soluciona de la siguiente manera:
En la clase JDBHelper, en el método EditableFeatureAttributeDescriptor se saca el código del default del switch a un nuevo método, de la siguiente manera:
protected EditableFeatureAttributeDescriptor createAttributeFromJDBC(
EditableFeatureType fType, Connection conn,
ResultSetMetaData rsMetadata, int colIndex)
throws java.sql.SQLException {
EditableFeatureAttributeDescriptor column;
switch (rsMetadata.getColumnType(colIndex)) {
.....
default:
column = createAttributeFromJDBCNativeType(fType, rsMetadata, colIndex);
break;
}
return column;
}
protected EditableFeatureAttributeDescriptor createAttributeFromJDBCNativeType(
EditableFeatureType fType, ResultSetMetaData rsMetadata, int colIndex)
throws SQLException {
EditableFeatureAttributeDescriptor column;
column = fType.add(rsMetadata.getColumnName(colIndex),
DataTypes.OBJECT);
column.setAdditionalInfo("SQLType", new Integer(rsMetadata
.getColumnType(colIndex)));
column.setAdditionalInfo("SQLTypeName", rsMetadata
.getColumnTypeName(colIndex));
return column;
}
Y en la clase PostgreSQLHelper
Se sobrescriben los dos métodos siguientes:
@Override
protected EditableFeatureAttributeDescriptor createAttributeFromJDBCNativeType(
EditableFeatureType fType, ResultSetMetaData rsMetadata, int colIndex)
throws SQLException {
EditableFeatureAttributeDescriptor column;
String nativeType = rsMetadata.getColumnTypeName(colIndex);
if (nativeType.startsWith("int")) {
column = fType.add(rsMetadata.getColumnName(colIndex),
DataTypes.INT);
column.setAdditionalInfo("SQLType", new Integer(rsMetadata
.getColumnType(colIndex)));
column.setAdditionalInfo("SQLTypeName", rsMetadata
.getColumnTypeName(colIndex));
return column;
}
return super.createAttributeFromJDBCNativeType(fType, rsMetadata, colIndex);
}
@Override
public Object dalValueToJDBC(
FeatureAttributeDescriptor attributeDescriptor, Object object)
throws WriteException {
if ("int2".equals(attributeDescriptor.getAdditionalInfo("SQLTypeName"))) {
return new Short(String.valueOf(object));
}
return super.dalValueToJDBC(attributeDescriptor, object);
}
Related issues
History
#1
Updated by Juan Lucas Domínguez over 12 years ago
- Status changed from New to Fixed
- Assignee set to Juan Lucas Domínguez
Fixed management of not-so-common data types in databases (patch provided by fdiaz)
#2
Updated by Joaquín del Cerro Murciano over 12 years ago
- Target version set to 2.1.0-2217-devel
#3
Updated by Álvaro Anguix over 12 years ago
- Status changed from Fixed to Closed