
query.setFirstResult()为什么不能从1开始,数据库是sql server2005
@TestpublicvoidsTest(){Sessionsession=HibernateSessionFactory.getSession();try{sessio...
@Test
public void sTest() {
Session session = HibernateSessionFactory.getSession();
try{
session.beginTransaction();
//查询职员所有信息
Query query = (Query) session.createQuery("from Employee");
List<Employee> list = query.setFirstResult(1).setMaxResults(2).list();
for(Employee emps: list) {
System.out.println(emps.getEmployeeID());
}
session.getTransaction().commit();
}catch(Exception ex) {
session.getTransaction().rollback();
}finally {
if(session != null) {
session.close();
}
}
} 展开
public void sTest() {
Session session = HibernateSessionFactory.getSession();
try{
session.beginTransaction();
//查询职员所有信息
Query query = (Query) session.createQuery("from Employee");
List<Employee> list = query.setFirstResult(1).setMaxResults(2).list();
for(Employee emps: list) {
System.out.println(emps.getEmployeeID());
}
session.getTransaction().commit();
}catch(Exception ex) {
session.getTransaction().rollback();
}finally {
if(session != null) {
session.close();
}
}
} 展开
3个回答
展开全部
1.建议你把showsql属性设成true,这样他就能在控制台打出相应SQL语句,一点一点去掉,做对比,看哪里不一样。
2.注意setFirstResult是从0开始的。
3.我不明白this.closeSession();
retList = query.list();
你关掉了SESSION还能再LIST?
应该把这两句话顺序反一下吧
2.注意setFirstResult是从0开始的。
3.我不明白this.closeSession();
retList = query.list();
你关掉了SESSION还能再LIST?
应该把这两句话顺序反一下吧
展开全部
setFirstResult
Query setFirstResult(int firstResult)
Set the first row to retrieve. If not set, rows will be retrieved beginnning from row 0.
Parameters:
firstResult - a row number, numbered from 0
------------------------------------------------------------------------------------------------
官方API里面的呀 不应该会出现这种情况啊。。。
错误贴出来呗。。。
Query setFirstResult(int firstResult)
Set the first row to retrieve. If not set, rows will be retrieved beginnning from row 0.
Parameters:
firstResult - a row number, numbered from 0
------------------------------------------------------------------------------------------------
官方API里面的呀 不应该会出现这种情况啊。。。
错误贴出来呗。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个例子,我现在做的工程也是s2+h的。
public List executefind(final String sql, final int startNum, final int maxNum, final Map<String, Object> maps){
List list = null;
list = (List)getHibernateTemplate().executeFind(new HibernateCallback(){
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
final Query query = session.createQuery(sql);
final Set<String> mapKeys = maps.keySet();
for(final String mapKey : mapKeys){
query.setParameter(mapKey, maps.get(mapKey));
}
if(maxNum > 0){
query.setFirstResult(startNum);
query.setMaxResults(maxNum);
}
return query.list();
}
});
return list;
}
里面的if(maxNum > 0)是我的一个业务需要,你可以忽略不计。这个就是后台分页用的方法,看命名应该能够理解
public List executefind(final String sql, final int startNum, final int maxNum, final Map<String, Object> maps){
List list = null;
list = (List)getHibernateTemplate().executeFind(new HibernateCallback(){
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
final Query query = session.createQuery(sql);
final Set<String> mapKeys = maps.keySet();
for(final String mapKey : mapKeys){
query.setParameter(mapKey, maps.get(mapKey));
}
if(maxNum > 0){
query.setFirstResult(startNum);
query.setMaxResults(maxNum);
}
return query.list();
}
});
return list;
}
里面的if(maxNum > 0)是我的一个业务需要,你可以忽略不计。这个就是后台分页用的方法,看命名应该能够理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询