import java.io.Serializable; import java.util.List; public interface CommonDao { public <T extends Serializable> T save(T model); public <T extends Serializable> void saveOrUpdate(T model); public <T extends Serializable> void update(T model); public <T extends Serializable> void merge(T model); public <T extends Serializable> void delete(T model); public <T extends Serializable, PK extends Serializable> void delete(Class<T> entityClass, PK id); public <T extends Serializable, PK extends Serializable> T get(Class<T> entityClass, PK id); public <T extends Serializable> List<T> listAll(Class<T> entityClass); } import java.io.Serializable; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @Component("commonDao") public class CommonDaoImpl implements CommonDao { @Autowired @Qualifier("sessionFactory") private SessionFactory sessionFactory; public Session getSession() { return sessionFactory.getCurrentSession(); } @Override public <T extends Serializable> T save(T model) { this.getSession().save(model); return model; } @Override public <T extends Serializable> void saveOrUpdate(T model) { this.getSession().saveOrUpdate(model); } @Override public <T extends Serializable> void update(T model) { this.getSession().update(model); } @Override public <T extends Serializable> void merge(T model) { this.getSession().merge(model); } @Override public <T extends Serializable> void delete(T model) { this.getSession().delete(model); } @Override public <T extends Serializable, PK extends Serializable> void delete( Class<T> entityClass, PK id) { this.getSession().delete(this.get(entityClass, id)); } @Override @SuppressWarnings("unchecked") public <T extends Serializable, PK extends Serializable> T get( Class<T> entityClass, PK id) { return (T) this.getSession().get(entityClass, id); } @Override @SuppressWarnings("unchecked") public <T extends Serializable> List<T> listAll(Class<T> entityClass) { Criteria criteria = getSession().createCriteria(entityClass); return criteria.list(); } }
通用DAO设计(泛型方法)
猜你喜欢
转载自jaesonchen.iteye.com/blog/2287148
今日推荐
周排行