为了账号安全,请及时绑定邮箱和手机立即绑定

dowork方法问题,求大神解释

doWork方法在这里就只是为了输出HashCode?前面说doWork会自动执行事务,什么时候可以自动执行事务!,而不要后面的一个transaction.commit();方法提交事务!

正在回答

2 回答

问题1回答:这里的doWork确实是要得到HashCode,用来比较是否是两个不同的连接(说明getCurrentSession是单例模式,而openSession每次都要占用不同的连接)。

问题2回答:这里Work()的excute方法里有Connection对象的参数,可以通过:

session.doWork(new Work(){

public void execute(Connection Conn) throws SQLException {

// TODO Auto-generated method stub

Conn.setAutoCommit(true);

}

});

自动执行事务,这样就不用transaction了。


0 回复 有任何疑惑可以回复我~

SessionFactory中有两个获取Session的方法,openSession()和getCurrentSession()。其中,getCurrentSession()方法在事务提交或回滚之后会自动关闭,openSession()需要手动关闭。事务需要提交,而是说doWork()可以避免调用了openSession()而忘记执行session.close()。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Hibernate初探之单表映射
  • 参与学习       74811    人
  • 解答问题       793    个

Java持久化框架Hibernate入门教程,掌握Hibernate基本概念

进入课程

dowork方法问题,求大神解释

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信