ky与你
2016-05-11 18:18
采纳率: 90%
浏览 1.5k
已采纳

spring4.14和hibernate不配置事务也成功currsession.save()到数据库

spring4.14和hibernate4不声明事务currentsession.save仍可以提交。why?

spring4和hibernate4我用hibernatetemplate.save报错,说什么事务为只读,我以为是切面配置错了,然后怎么调也不行就换成了currentsession,就行了,然后我把关于事务声明切面的配置文件都注释掉了,getcurrentsession..save还是可以提交,这是为什么啊,不明白了。

从网上找到好多答案,说hibernate4自己可以事务管理,但我不明白自己可以管理的意思是什么,可以不使用spring做任何关于事务的事情了?

还说spring3不支持hibernatetemplate,然后又说4.14又支持了,那我现在用的是4.14,为什么不可以save()

spring4.14和hibernate正确的事务管理到底是该怎么配置,是用current就行了,不需要进行事务配置了,还是依旧使用hibernatetemplate然后对配置进行更改?从网上看各种配置都有,有没有谁可以帮忙解答一下我所困惑的这些问题,谢谢。奈何我看不懂官网的文档啊。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 喵先生MJ 2016-05-12 00:28
    已采纳

    Hibernate本身就有事务控制。Spring对事务的配置都是在业务层,可以保证业务方法中如果有多个数据库操作方法的话,要么都提交成功,如果有一个失败了,大家的操作都进行回滚,这样可以保持数据的完整性。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • machineShunMing 2016-05-11 23:59

    你可以先去看看事务是什么意思,不是说不配置事务,数据就不能保存

    评论
    解决 无用
    打赏 举报
  • 王倔驴 2016-06-22 09:48

    事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成
    事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性
    事务还分为手动事务和自动事务.

    评论
    解决 无用
    打赏 举报
  • Feng_Ellick 2016-07-12 08:59

    遇到同样的问题,有认出来解答下吗?

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题