gvSIG bugs #2190
Error Postgresql guardando una feature de tipo int2
Status: | Closed | % Done: | 0% | |
---|---|---|---|---|
Priority: | Normal | Spent time: | - | |
Assignee: | Juan Lucas Domínguez | |||
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 10 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 10 years ago
- Target version set to 2.1.0-2217-devel
#3 Updated by Álvaro Anguix over 10 years ago
- Status changed from Fixed to Closed