Sql server 表为空时休眠sql异常
当作业表没有行时,以下代码会导致异常Sql server 表为空时休眠sql异常,sql-server,hibernate,jtds,Sql Server,Hibernate,Jtds,当作业表没有行时,以下代码会导致异常 public List<Job> getAll(int currentPage, int pageSize) { return this.sessionFactory.getCurrentSession() .createCriteria(Job.class).addOrder(Order.asc("id")) .setFirstResult(currentPage * pageSize).setMaxRe
public List<Job> getAll(int currentPage, int pageSize) {
return this.sessionFactory.getCurrentSession()
.createCriteria(Job.class).addOrder(Order.asc("id"))
.setFirstResult(currentPage * pageSize).setMaxResults(pageSize)
.setFetchSize(pageSize).list();
}
该问题与尝试分页空表有关。 放下这些: .setFirstResultcurrentPage*pageSize.setMaxResultspageSize .setFetchSizepageSize 您应该能够查询空表而不会出现问题。
如果要分页数据,请首先运行常规查询,然后在知道有数据要分页后使用查询分页数据。此问题与尝试分页空表相关。 放下这些: .setFirstResultcurrentPage*pageSize.setMaxResultspageSize .setFetchSizepageSize 您应该能够查询空表而不会出现问题。
如果要分页数据,请首先运行常规查询,然后在知道有数据要分页后,使用查询分页数据。将以下属性添加到persistence.xml可以为我解决这个问题jboss7,hibernate4
<property name="hibernate.jdbc.use_scrollable_resultset" value="false" />
我没有检查更改方言的替代解决方案-将以下属性添加到persistence.xml解决了我jboss7、hibernate4的这个问题
<property name="hibernate.jdbc.use_scrollable_resultset" value="false" />
更改方言的替代解决方案未经我检查-我遇到了同样的问题,在四处查看了一段时间后,一位同事建议我更改hibernate方言:
org.hibernate.dialect.SQLServerDialect
对此
org.hibernate.dialect.SQLServer2005Dialect
它解决了我的问题
发布只是为了提醒人们检查他们的方言。我也遇到了同样的问题,在四处查看了一段时间后,一位同事建议我更改hibernate方言:
org.hibernate.dialect.SQLServerDialect
对此
org.hibernate.dialect.SQLServer2005Dialect
它解决了我的问题
发布只是为了让人们检查他们的方言。有没有关于如何避免这种情况的想法?有没有关于如何避免这种情况的想法?使用MySQL时效果很好。似乎只有SQL Server才会失败。使用MySQL时效果很好。这似乎只适用于SQL Server。在使用setFirstResult时,用JTDS 1.2.7解决了我在SQL Server 2000上遇到的前进方向问题,谢谢!在使用setFirstResult时,使用JTDS 1.2.7解决了我在SQL Server 2000上遇到的前进方向问题,谢谢!