今天在做hibernate分页时遇到一个奇怪的问题,我在一的一端加载数据能够在Web端显示出来
调用的方法
public List getTestClassList(int pagesize,int currow) {
log.debug("get page data");
List vehicleList = null;
Session session = this.getSession();
Transaction transaction= session.beginTransaction();
try{
Query q=session.createQuery("from TestClass");
q.setFirstResult(currow);
q.setMaxResults(pagesize);
vehicleList=q.list();
session.flush();
return vehicleList;
}catch(RuntimeException re){
log.error("get page data failed", re);
throw re;
}finally{
transaction.commit();
session.close();
}
}但是在多的一端加载数据时也调用相同的方法,把TestClass换成多的一端的实体类进行调用,结果能显示出调用的sql
但是却抱了一个错误
[ERROR] 2009-03-21 04:19:29 org.hibernate.LazyInitializationException - could not initialize proxy - the owning Session was closed
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
为什么加载一的一端可以显示出来,调用多的一端就不能显示出来了。而且我在多的一端也加了lazy=false属性。
调用的方法
public List getTestClassList(int pagesize,int currow) {
log.debug("get page data");
List vehicleList = null;
Session session = this.getSession();
Transaction transaction= session.beginTransaction();
try{
Query q=session.createQuery("from TestClass");
q.setFirstResult(currow);
q.setMaxResults(pagesize);
vehicleList=q.list();
session.flush();
return vehicleList;
}catch(RuntimeException re){
log.error("get page data failed", re);
throw re;
}finally{
transaction.commit();
session.close();
}
}但是在多的一端加载数据时也调用相同的方法,把TestClass换成多的一端的实体类进行调用,结果能显示出调用的sql
但是却抱了一个错误
[ERROR] 2009-03-21 04:19:29 org.hibernate.LazyInitializationException - could not initialize proxy - the owning Session was closed
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
为什么加载一的一端可以显示出来,调用多的一端就不能显示出来了。而且我在多的一端也加了lazy=false属性。
<set name="students" inverse="true" cascade="all" lazy="false">
<key column="classesid"/>
<one-to-many class="Student"/>
</set>