如何在启用JPA缓存时刷新getResultList实体集合.我的意思是:
List customers = query.getResultList();
????? > em.refresh(客户)!//我需要刷新,因为缓存已启用.
RGDS Navid
在JPA 2.0中,通过使用查询提示可能更容易完全跳过L2缓存.例如 :
Query query = em.createQuery(...);
query.setHint("javax.persistence.cache.retrieveMode", "BYPASS"); // skip the L2 cache.
List customers = query.getResultList();
Run Code Online (Sandbox Code Playgroud)
但这在JPA 1.0中不可用.如果您使用的是JPA 1.0,则可能必须使用特定于供应商的API.我相信Hibernate提供类似于JPA 2.0提示的东西(其他提供者也可能有这种机制).OpenJPA有一个refreshAll(Collection c)方法也适用于你,我怀疑其他提供程序有类似的东西.EclipseLink似乎没有.
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |