您的位置:首页 > 其它

Hibernate 自动提交autoCommit一般建议设置成false

2017-02-13 01:00 961 查看
connection.autocommit=true

这个属性是说,如果是true的话,就是自动提交,比如
在一个业务中中,你有多个操作数据库的子业务,
例如
业务SuperA中有子业务suba,subb,subc.....
如果是自动的话,
suba操作成功 提交
subb操作失败 回滚
subc操作失败 回滚

按照我们的逻辑当SuperA中有某一环节操作失败的话,都应该回滚到没有操作之前
而当为true时(connection.autocommit=true),则为出现a成功 b,c失败 ,SuperA不具备了时务的特征,原子性等等

当不是true时(connection.autocommit=false),,这时事务的管理提交给了spring,Spring的事务控制是以一个bean为单位的,
SuperA是bean中一个方法或者其他,这样当执行事务SuperA时,只要a,b,c...中一个失败,都
会认定是失败操作 roolback. 这样避免了脏数据的出现,也合乎了事务的特征。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: