什么是事务缓存和非事务缓存?
它们之间有什么区别?
答案 0 :(得分:4)
JPA支持缓存的不同事务隔离级别,这些级别通常可分为事务性和非事务性。
事务隔离定义了一个操作所做的更改如何对其他并发操作可见。
在事务高速缓存中,事务的更改将作为单个原子单元提交到高速缓存。这意味着对象/数据首先被锁定在缓存中(阻止其他线程/用户访问对象/数据),然后在缓存中更新,然后释放锁。理想情况下,在提交数据库事务之前获取锁,以确保与数据库的一致性。
在非事务性缓存中,对象/数据逐个更新,没有任何锁定。这意味着将有一个短暂的时间段,缓存中的数据与数据库不一致。
某些JPA提供程序可能允许配置其缓存隔离,以支持对缓存的一致性和隔离进行细粒度控制。