Hibernate的@Version与交易

时间:2015-08-02 20:31:29

标签: hibernate

有人可以解释一下,为什么我们应该在Hibernate中使用@Version注释而我们已经使用了交易?事务不保证数据库的一致性吗?

1 个答案:

答案 0 :(得分:1)

有助于阅读@Version JavaDoc

  

该版本用于在执行合并操作和乐观并发控制时确保完整性。

并且(如果你不知道)EntityManager.merge() JavaDoc

  

将给定实体的状态合并到当前持久化上下文中。

这意味着将的交易实体添加到该交易中。

换句话说:事务用于检查短期运行操作的一致性,而@Version用于长时间运行(分离的)操作,例如:在跨多个服务器请求编辑实体时。