Skip to content

Commit b9da3fb

Browse files
authored
Merge pull request Tencent#390 from SingleDogL/patch-2
修复oracle分页获取时无法获取除第一页以外的数据
2 parents 2303271 + 4f40cbd commit b9da3fb

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3946,13 +3946,25 @@ public static String getSQL(AbstractSQLConfig config) throws Exception {
39463946
&& StringUtil.isNotEmpty(config.getGroup(),true)){
39473947
return explain + "SELECT count(*) FROM (SELECT " + (config.getCache() == JSONRequest.CACHE_RAM ? "SQL_NO_CACHE " : "") + column + " FROM " + getConditionString(column, tablePath, config) + ") " + config.getLimitString();
39483948
}
3949-
return explain + "SELECT * FROM (SELECT " + (config.getCache() == JSONRequest.CACHE_RAM ? "SQL_NO_CACHE " : "") + column + " FROM " + getConditionString(column, tablePath, config) + ") " + config.getLimitString();
3949+
String sql = "SELECT " + (config.getCache() == JSONRequest.CACHE_RAM ? "SQL_NO_CACHE " : "") + column + " FROM " + getConditionString(column, tablePath, config);
3950+
return explain + config.getOraclePageSql(config, sql);
39503951
}
3951-
39523952
return explain + "SELECT " + (config.getCache() == JSONRequest.CACHE_RAM ? "SQL_NO_CACHE " : "") + column + " FROM " + getConditionString(column, tablePath, config) + config.getLimitString();
39533953
}
3954-
}
3955-
3954+
}
3955+
3956+
/**Oracle的分页获取
3957+
* @param config
3958+
* @param sql
3959+
* @return
3960+
*/
3961+
private String getOraclePageSql(AbstractSQLConfig config, String sql) {
3962+
int offset = getOffset(config.getPage(), config.getCount());
3963+
String pageSql;
3964+
pageSql = "SELECT * FROM (SELECT t.*,ROWNUM RN FROM (" + sql + ") t WHERE ROWNUM <= " + (offset + count) + ") WHERE RN > " + offset;
3965+
return pageSql;
3966+
}
3967+
39563968
/**获取条件SQL字符串
39573969
* @param column
39583970
* @param table

0 commit comments

Comments
 (0)