四、通用Dao层之BaseDao接口与BaseDaoImpl类

一、BaseDao接口:

四、通用Dao层之BaseDao接口与BaseDaoImpl类

/**
 * 建议业务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层之BaseDao接口与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();
    }
    
}


你可能感兴趣的:(四、通用Dao层之BaseDao接口与BaseDaoImpl类)