当使用LIMIT AND OFFSET时,H2嵌入式DB不会返回正确的结果

时间:2018-05-09 12:11:46

标签: java jdbc h2

我正在使用以下查询对我的表进行分页。

select * 
from TABLE_NAME 
LIMIT 4 OFFSET 10

我的桌子有12行。当我从Squirrel运行此查询时,它会返回响应,但是当我使用JDBC连接来获取它时,它不会返回数据。

如果我使用LIMIT AS 14和OFFSET 4,相同的查询工作正常。(我的JDBC没有问题)。

Java代码:

List<DataPoolEntity> list = new ArrayList<>();
try {

    String fetch = "select * from TABLENAME LIMIT " + limit + " OFFSET " + offset;


    java.sql.PreparedStatement stmt = conn.prepareStatement(fetch);

    java.sql.ResultSet result = stmt.executeQuery();

    list = generateDataPoolEntityList(result); (custom code) - ignore this
    result.close();
    stmt.close();
    return list;
} catch (SQLException e) {
    e.printStackTrace();
}
return null;

1 个答案:

答案 0 :(得分:1)

Order by应该在limit之前。 See the specification