Example usage for org.hibernate.dialect Dialect useMaxForLimit

List of usage examples for org.hibernate.dialect Dialect useMaxForLimit

Introduction

In this page you can find the example usage for org.hibernate.dialect Dialect useMaxForLimit.

Prototype

@Deprecated
public boolean useMaxForLimit() 

Source Link

Document

Does the LIMIT clause take a "maximum" row number instead of a total number of returned rows?

Usage

From source file:com.lakeside.data.sqldb.PageBaseDao.java

License:Apache License

protected <X> String setPageParameter(final String sql, final Map<String, Object> values, final Page<X> page) {
    Dialect dialect = ((SessionFactoryImpl) sessionFactory).getDialect();
    String pageSql = dialect.getLimitString(sql, page.getFirst() - 1, page.getPageSize());
    boolean hasOffset = page.getFirst() - 1 > 0 || dialect.forceLimitUsage();
    if (!hasOffset) {
        pageSql = pageSql.replace("?", ":pageLimit");
        values.put("pageLimit", page.getPageSize());
        return pageSql;
    }// w w w  .ja  v  a2  s  . c  om
    if (dialect.bindLimitParametersInReverseOrder()) {
        pageSql = StringUtils.replaceOnce(pageSql, "?", ":pageLimit");
        pageSql = StringUtils.replaceOnce(pageSql, "?", ":pageOffset");
    } else {
        pageSql = StringUtils.replaceOnce(pageSql, "?", ":pageOffset");
        pageSql = StringUtils.replaceOnce(pageSql, "?", ":pageLimit");
    }
    values.put("pageOffset", page.getFirst() - 1);
    values.put("pageLimit", page.getPageSize());
    if (dialect.useMaxForLimit()) {
        values.put("pageLimit", page.getFirst() - 1 + page.getPageSize());
    }
    return pageSql;
}