最近一直在思考一个问题
我们的serviceImpl类 继承了一个BaseHibernateDAO,实现UserService接口
我们的serviceImpl类 继承了一个BaseHibernateDAO,实现UserService接口
@Repository
public class UserServiceImpl extends BaseHibernateDAO<Userinfo, Integer>
implements UserService {
而这个BaseHibernateDAO 里面封装了常见了一些操作,
public interface IBaseHibernateDAO<E extends java.io.Serializable, PK extends java.io.Serializable> {
public Session getSession();
public void save(E entity);
public void saveOrUpDate(E entity);
public void delete(PK id);
public void update(E entity);
public List<E> listAll();
public List<E> findByProperty(String queryProperty,String value);
public E get(PK id);
}
而在我们的controller里面注入的却是
@Autowired
private UserService userService;
本人想的是,我们的 UserServiceImpl 里面既然都继承了BaseHibernateDAO,那BaseHibernateDAO里面的方法很多自然可以不用在复写了,
但是实际情况却不是这样的,UserServiceImpl 里面全部BaseHibernateDAO的方法都得复写一遍,不写的话,controller里面接口明显是没有那些公共的方法的。
return super.listAll(); 这样。
现在越来越不清楚这样设计的目的了,那这个BaseHibernateDAO还有啥用呢?
解决方案
40
BaseHibernateDAO封装常见的CRUD的操作。