Hola,

Antes con una tabla alfanumérica proveniente de postgres usaba un código
como este para filtrar algunas features de la tabla que me interesaban, y
estas features tenían todos los atributos:

```java
FeatureStore store = my_get_feature_store_from_the_tabledocument() // no
relevante. capa con al menos columnas: gid, bar, foo
boolean hasFilter = si_tiene_que_tener_filtro(); // no relevante
DataManager dataManager = DALLocator.getDataManager();
FeatureQuery query = store.createFeatureQuery();
if (hasFillter()) {
    String where = "foo = 5";
    Evaluator evaluator = dataManager.createExpresion(where) // ahora sería
createFilter
    query.addFilter(evaluator);
}
FeaturePagingHelper set = manager.createFeaturePagingHelper(store, query,
10); // tenía todos los atributos

Feature feat = set.getFeatureAt(position);
feat.get("bar"); // IllegalArgumentException: Attribute name 'bar' not
found in the feature.
```

Pero ahora al intentar acceder a un atributo de la feature que no está
definido en el filtro obtengo un error. En otros métodos
de store.createFeatureQuery(xxxx); veo que al final se hace un
"query.retrievesAllAttributes();". ¿Este es el comportamiento esperado? Lo
comento por si es un bug.

He cambiado del siguiente modo y parece funcionar:

```java
FeatureStore store = my_get_feature_store_from_the_tabledocument() // no
relevante. capa con al menos columnas: gid, bar, foo
boolean hasFilter = si_tiene_que_tener_filtro(); // no relevante
DataManager dataManager = DALLocator.getDataManager();
FeatureQuery query = null;
if (hasFillter()) {
    String where = "foo = 5";
    store.createFeatureQuery(where, "", false);
} else {
     store.createFeatureQuery("", "", false);
}
FeaturePagingHelper set = manager.createFeaturePagingHelper(store, query,
10);

Feature feat = set.getFeatureAt(position);
feat.get("bar"); // It works!
```



-- 
Francisco Puga
iCarto | Innovación, Cooperación, Cartografía y Territorio S.L.
http://www.icarto.es/
_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores@listserv.gva.es
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de 
baja en esta lista, acuda a la siguiente dirección: 
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores

Responder a