我是JPA的新手,我开始使用JPA应用程序。在做的时候我找到了
@Cache(coordinationType=CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS)
更多类型协调。我没有在JPA中使用coordinationType。任何人都可以告诉我何时使用和使用什么协调类型。
答案 0 :(得分:5)
JPA 2.0使用两个缓存:第一个是您的实体管理器。它可以在JPA 1.0中使用,并在其生命周期内缓存其对象。由于您应该将实体管理器用于单个工作单元,因此这个生命周期通常很短。 JPA 2.0引入了二级缓存,其中对象通常寿命更长。虽然这通常会带来性能优势,但可能会导致缓存不一致,尤其是在multionode环境中。 CacheCoordinationType
是一个用于控制缓存复制的eclipselink扩展。对于便携式应用程序,您可能希望使用JPA缓存API。哪种策略最好取决于您的应用程序对一致性和性能的需求。如果您希望获得最佳性能,并且可以使用过时的答案,请不要传播更改,但要限制缓存中对象的生命周期。否则通知有关变更并注意事项:
答案 1 :(得分:0)
根据CacheCoordinationType javadoc:
draw_image()
以下是一些可能有用的资源: @Example 2-10使用@Cache Annotation https://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_cache.htm
优化#3 - 查询缓存 http://java-persistence-performance.blogspot.com/2011/06/how-to-improve-jpa-performance-by-1825.html