【发布时间】:2009-08-31 12:51:53
【问题描述】:
第一季度: “交易”策略保证了什么?
第二季度: JTA作为事务管理器(由属性指定)的“事务”策略和“读/写”策略有什么区别。
第三季度: 如果我在 .hbm.xml 文件中为某些实体指定“事务”策略,然后将使用不支持“事务”策略的 L2 缓存。
【问题讨论】:
标签: hibernate second-level-cache
第一季度: “交易”策略保证了什么?
第二季度: JTA作为事务管理器(由属性指定)的“事务”策略和“读/写”策略有什么区别。
第三季度: 如果我在 .hbm.xml 文件中为某些实体指定“事务”策略,然后将使用不支持“事务”策略的 L2 缓存。
【问题讨论】:
标签: hibernate second-level-cache
对于Q1 - 在我的理解中,交易意味着两件事。如果您有同步复制,您的事务将暂停,直到所有节点都获得复制的更改。如果您有异步复制,您可以确保您的其他节点将看到所选隔离级别的更改(例如,读取已提交)并将遵守提交和角色回复。 这也意味着,如果数据库中发生错误,或者抛出另一个异常(在调用者的事务方面导致回滚),缓存也将对更改执行回滚 - 保持缓存和数据库之间的同步。 请注意,这需要 JPA 事务管理器。
对于Q2 - 读/写不是集群安全的,它不能保证节点之间的数据一致性
对于 Q3 - 从未尝试过,但它可能会因一个不错的异常而失败
【讨论】: