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
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