Revision 43358 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/FetchFeatureProviderByReferenceOperation.java

View differences:

FetchFeatureProviderByReferenceOperation.java
5 5
import java.sql.PreparedStatement;
6 6
import java.sql.ResultSet;
7 7
import java.sql.SQLException;
8
import java.util.ArrayList;
9
import java.util.List;
8 10
import org.gvsig.fmap.dal.exception.DataException;
9 11
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
10 12
import org.gvsig.fmap.dal.feature.FeatureType;
......
62 64
            String schema,
63 65
            String table
64 66
        ) throws DataException {
67
        List<FeatureAttributeDescriptor> columns = new ArrayList<>();        
65 68
        
66 69
        // FeatureAttributeDescriptor[] primaryKey = storeType.getPrimaryKey();
67 70
        String[] primaryKeys = reference.getKeyNames();
......
71 74
        for (FeatureAttributeDescriptor attr : featureType) {
72 75
            if( attr.getType()==DataTypes.GEOMETRY ) {
73 76
                sqlbuilder.select().column().name(attr.getName()).as_geometry();
77
                columns.add(attr);
74 78
            } else {
75 79
                sqlbuilder.select().column().name(attr.getName());
80
                columns.add(attr);
76 81
            }
77 82
        }
78 83
        sqlbuilder.select().from().table().database(database).schema(schema).name(table);
79 84
        for (String name : primaryKeys )  {
80 85
            if( !sqlbuilder.select().has_column(name) ) {
81 86
                sqlbuilder.select().column().name(name);
87
                columns.add(featureType.getAttributeDescriptor(name));
82 88
            }
83 89
            Object value = reference.getKeyValue(name);
84 90
            if( value == null ) {
......
108 114
                return null;
109 115
            }
110 116
            FeatureProvider data = this.helper.createFeature(featureType);
111
            this.helper.fetchFeature(data, rs);
117
            this.helper.fetchFeature(data, rs, columns.toArray(new FeatureAttributeDescriptor[columns.size()])); 
112 118
            return data;
113 119

  
114 120
        } catch (SQLException ex) {

Also available in: Unified diff