Revision 43659 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/ResultSetForSetProviderOperation.java

View differences:

ResultSetForSetProviderOperation.java
99 99
        for(FeatureAttributeDescriptor attr : storeType.getPrimaryKey() ) {
100 100
            primaryKeys.add(attr.getName());
101 101
        }
102
        if( offset>0 ) {
102
        if( offset>0 || (offset==0 && limit>0) ) {
103
            // No tengo claro que (offset==0 && limit>0) sea lo mas correcto,
104
            // Pero cuando se va a paginar y se pide la primera pagina offset es
105
            // 0 y limit>0, y si no ordenamos ya esa primera pagina los resultados
106
            // que se obtienen no son correctos, ya que la primera pagina se saca
107
            // sin ordenar y el resto ordenadas.
108
            // Probablemente deberiamos tener alguna otra forma de detectar que
109
            // estamos paginanado ya que asi no distinguimo si solo queremos 
110
            // obtener los primeros elementos sin importarnos su orden.
103 111
            for(String attrName : primaryKeys ) {
104 112
                // Se precisa indicar un orden para usar OFFSET.
105 113
                sqlbuilder.select().order_by().column(sqlbuilder.identifier(attrName)).ascending();

Also available in: Unified diff