一、BaseDao接口:

/**
* 建议业务Dao不继承此类接口,请继承com.nenglong.base.dao.CoreDao
* <br>
* 通用的添加、删除、修改和查询操作类接口
*
* @see BaseInternalDao 详细请看BaseInternalDao 通用内部使用方法接口
* @see BaseQueryDao 详细请看BaseQueryDao 通用的查询方法接口
* @see BaseExecuteDao 详细请看BaseQueryDao 通用的操作方法接口
*
* @param <T> 后台实体
* @param <F> 前台Form(包含分页信息)
* @author chendejiang
*/
public interface BaseDao<T,F extends PageForm> extends BaseInternalDao<T, F>,BaseQueryDao<T, F>, BaseExecuteDao<T, F>{
/**
* 判断缓存是否包含指定主键的实体数据
* @param entityClass 实体类
* @param primaryKey 主键
* @return
*/
public boolean containsCache(final Class<?> entityClass, Object primaryKey);
/**
* 从缓存里清除指定主键的实体数据
* @param entityClass 实体类
* @param primaryKey 主键
*/
public void evictCache(final Class<?> entityClass, Object primaryKey);
/**
* 从缓存里清除指定实体类的所有数据
* @param entityClass 实体类
*/
public void evictCache(final Class<?> entityClass);
/**
* 从缓存里清除所有实体类的所有数据
*/
public void evictAllCache();
}
二、BaseDaoImpl类:

/**
* 建议业务Dao不继承此类接口,请继承com.nenglong.base.dao.CoreDaoImpl
* <br>
* 通用的添加、删除、修改和查询操作类
*
* @see BaseInternalDao 详细请看BaseInternalDao 通用内部使用方法接口
* @see BaseQueryDao 详细请看BaseQueryDao 通用的查询方法接口
* @see BaseExecuteDao 详细请看BaseQueryDao 通用的操作方法接口
*
* @param <T> 后台实体
* @param <F> 前台Form(包含分页信息)
* @author chendejiang
*/
public class BaseDaoImpl<T,F extends PageForm> extends BaseExecuteDaoImpl<T, F> implements BaseDao<T,F> {
/* (non-Javadoc)
* @see com.nenglong.base.dao.BaseDao#containsCache(java.lang.Class, java.lang.Object)
*/
public boolean containsCache(Class<?> entityClass, Object primaryKey) {
return em.getEntityManagerFactory().getCache().contains(entityClass, primaryKey);
}
/* (non-Javadoc)
* @see com.nenglong.base.dao.BaseDao#evictCache(java.lang.Class, java.lang.Object)
*/
public void evictCache(Class<?> entityClass, Object primaryKey) {
em.getEntityManagerFactory().getCache().evict(entityClass, primaryKey);
}
/* (non-Javadoc)
* @see com.nenglong.base.dao.BaseDao#evictCache(java.lang.Class)
*/
public void evictCache(Class<?> entityClass) {
em.getEntityManagerFactory().getCache().evict(entityClass);
}
/* (non-Javadoc)
* @see com.nenglong.base.dao.BaseDao#evictAllCache()
*/
public void evictAllCache() {
em.getEntityManagerFactory().getCache().evictAll();
}
}