2013-11-26 122 views

回答

3

JPA支持不同的缓存事务隔离级别,这些级别通常可以分为事务性和非事务性两类。

事务隔离定义了一个操作所做的更改如何对其他并发操作可见。

在事务性高速缓存中,来自事务的更改将作为单个原子单位提交给高速缓存。这意味着对象/数据首先锁定在缓存中(阻止其他线程/用户访问对象/数据),然后在缓存中更新,然后释放锁。理想情况下,在提交数据库事务之前获取锁,以确保与数据库的一致性。

在非事务性缓存中,对象/数据逐个更新而不锁定。这意味着缓存中的数据与数据库不一致的时间会很短。

某些JPA提供程序可能允许配置其高速缓存隔离,以支持对高速缓存的一致性和隔离性的细粒度控制。