|
After Informix 10.0 there is ability to do pagination. There are “FIRST, LIMIT, SKIP” keywords which are responsible for that.
Options for fixing would be to modify the existing InformixDialect, or (better) extend to a new class as per code snippet below, which is working fine for me.
public boolean useMaxForLimit() { return false; }
public boolean supportsLimitOffset() { return true; }
public String getLimitString(String querySelect, int offset, int limit) { StringBuilder pagingSelect=new StringBuilder( querySelect.length() + 20 ).append("select"); if ( offset > 0 ) { pagingSelect.append(" skip "+offset); }
if ( limit > 0 ) { pagingSelect.append(" first "+limit); }
return pagingSelect.append( querySelect.substring(querySelect.toLowerCase().indexOf( "select" ) + 6, querySelect.length())).toString(); }
|