Jen*_*der 3 java jpa stateless entitymanager
Hibernate有一个无状态版本的会话:JPA EntityManager是否存在类似的东西?即一个不使用第一级缓存的EntityManager?
从JPA的角度来看:
javax.persistence.EntityManager
代表第一级缓存(持久性上下文,事务缓存)javax.persistence.EntityManagerFactory
代表二级缓存(共享缓存)给定的持久性提供程序可以实现其他缓存层.此外,JDBC驱动程序API可以被视为低级缓存,用于存储列/表和缓存连接/语句.然而它对JPA来说是透明的.
无论javax.persistence.EntityManager和org.hibernate.StatelessSession提供类似的API.
你无法使用EntityManager禁用第一级缓存,因为这两件事是等价的.但是你可以:
createQuery
,, 跳过第1级缓存createNamedQuery
,createNativeQuery
用于查询和批量更新/删除(不更新持久性上下文以反映其结果).此类查询应在其自己的事务中执行,从而使任何缓存的实体(如果有)无效.还应使用事务范围的实体管理器(意味着无状态).<shared-cache-mode>NONE</shared-cache-mode>
在persistence.xml或javax.persistence.sharedCache.mode
属性中设置来禁用二级缓存 归档时间: |
|
查看次数: |
4599 次 |
最近记录: |