67,513
社区成员
发帖
与我相关
我的任务
分享
@Transactional(propagation = Propagation.REQUIRED,rollbackFor=Exception.class)
//hibernateTemplate 从spring中获取的、
SessionFactory sf = hibernateTemplate.getSessionFactory();
//创建session 、从当前事务中获取session
Session session = SessionFactoryUtils.getSession(sf, false); //true是找不到事务允许新建个session,false是必须从当前事务中获取
//dosomething();
//释放是这样释放的
session.clear();
SessionFactoryUtils.releaseSession(session, sf);
//能获取session的方法我都试了些、
SessionFactory sf = hibernateTemplate.getSessionFactory();//sf
Session session = sf.openSession();//session1
Session session = SessionFactoryUtils.getSession(sf,true);//session2
Session session = SessionFactoryUtils.getNewSession(sf);//session3
Session session = SessionFactoryUtils.doGetSession(sf, true);//session4
Session session = sf.getCurrentSession(); //session5
//do somethin ..
session.clear();
//无论怎么样关闭,我都无法释放session
session.close();
//甚至连这样释放的都一并用上了
SessionFactoryUtils.closeSession(session);
SessionFactoryUtils.releaseSession(session, hibernateTemplate.getSessionFactory());
public class Student extends HibernateDaoSupport {
private Object mine() {
// do something();
return null;
}
public void hibernateTest() {
super.getHibernateTemplate().execute(new HibernateCallback<Object>() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
return Student.this.mine();
}
});
}
}
private Object mine() {
// do something();
return null;
}
public void hibernateTest() {
super.getHibernateTemplate().execute(new HibernateCallback<Object>() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// 这样访问上面的私有 mine()方法?
return Student.this.mine();
}
});
}
private void mine(){
//do something();
}
public void hibernateTest(){
super.getHibernateTemplate().execute(new HibernateCallBack(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
//这里如何调用 上面的私有 mine()方法?
return 1;
}
});
}