Example usage for org.hibernate.dialect Dialect bindLimitParametersInReverseOrder

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

Introduction

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

Prototype

@Deprecated
public boolean bindLimitParametersInReverseOrder() 

Source Link

Document

ANSI SQL defines the LIMIT clause to be in the form LIMIT offset, limit.

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 .  java  2 s . c  o m*/
    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;
}