diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java index 620fa7d..8141193 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java @@ -20,6 +20,23 @@ import java.util.Map; public interface BaseRepository extends JpaRepository { /** + * 清空一级缓存,可能影响service中对象的状态,慎用 + */ + void clearSession(); + + /** + * 清除一级缓存对象,设为游离态 + * @param t + */ + void detachObject(T t); + + /** + * 清除一级缓存集合,设为游离态 + * @param list + */ + void detachList(List list); + + /** * 新增对象
* 注意:如果对象id是long,并且为0,则设为 * 字符串,并且没有赋值,该方法将自动设置为uuid值 diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java index 103be31..24c21ea 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java @@ -48,6 +48,24 @@ public class BaseRepositoryImpl extends SimpleJpaRep this.snowflakeIdMaker = snowflakeIdMaker; } + public void clearSession(){ + entityManager.clear(); + } + + public void detachObject(T t){ + entityManager.detach(t); + } + + //集合设置为游离态 + public void detachList(List list){ + if(list != null){ + for(T t : list) { + //设置对象为游离态 + entityManager.detach(t); + } + } + } + private void setParameter(Query query, String[] propName, Object[] propValue) { String name = null; Object value = null;