在使用Hibernate的时候,遇到这样一个问题,查询的时候,以某一列date类型字段排序,在分页的时候,到某一页就会发生数据不变化的情况。
后来经分析,发现是Hibernate方言的问题,使用的数据库是Oracle11g,而方言用的是org.hibernate.dialect.Oracle10gDialect,后来改成org.hibernate.dialect.OracleDialect就没问题了,通过打印出来的sql可以看到,这两种方言打印出来的分页语句不一样。可能是10g的为分页做了优化,而目前还没有支持11g的方言,所以只能用标准方言org.hibernate.dialect.OracleDialect替代。