最近一直在思考一个问题
我们的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的操作。