这种分页方式只支持10或者10以上的版本.
建一个类InformixDialect继承org.hibernate.dialect.InformixDialect.
并重写下面几个方法useMaxForLimit();supportsLimitOffset();(String querySelect, int offset, int limit);
在Hibernate的配置中hibernate.dialect=您重写的这个类InformixDialect
具体代码见下:
import java.sql.Types;import org.hibernate.Hibernate;
public class InformixDialect extends org.hibernate.dialect.InformixDialect {
public InformixDialect() {
super();
registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
}
public boolean useMaxForLimit() {
return false;
}
public boolean supportsLimitOffset() {
return true;
}
public String getLimitString(String querySelect, int offset, int limit) {
// if (offset>0) throw new UnsupportedOperationException("informix has
// no offset");
return new StringBuffer(querySelect.length() + 8).append(querySelect)
.insert(querySelect.toLowerCase().indexOf("select") + 6,
" skip " + offset + " first " + limit).toString();
}
}

0 评论:
发表评论