Hibernate中的事务性L2缓存

时间:2009-08-31 12:51:54

标签: hibernate second-level-cache

Q1: “交易”策略保证什么?

Q2: 使用JTA作为事务管理器(由属性指定)的“事务”策略和“读/写”策略之间有什么区别。

Q3: 如果我为.hbm.xml文件中的某个实体指定“事务”策略然后将使用不支持“事务”策略的L2缓存,该怎么办。

1 个答案:

答案 0 :(得分:2)

对于 Q1 - 交易意味着我理解的两件事。如果您具有同步复制,则事务将暂停,直到所有节点都获得复制更改。如果您具有异步复制,则可以确保其他节点将看到所选隔离级别的更改(例如,已提交读取),并且将遵循提交和角色备份。 这也意味着如果数据库中发生错误或抛出另一个异常(在调用者的事务方面导致回滚),缓存也将执行回滚更改 - 保持缓存和数据库之间的同步。 请注意,这需要JPA事务管理器。

对于 Q2 - 读/写不是群集安全的,它不保证节点之间的数据一致性

对于 Q3 - 从未尝试过,但它可能会因为一个不错的异常而失败