`
hywang1230
  • 浏览: 4844 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

DAO基类

阅读更多
  public class BaseDao<T> { //提供DAO类级别的泛型支持
     /**
      *子类只要打上@Respository的注解就自然的拥有HibernateTemplate成员变量,无需各自声明
     */
     @Autowired
     private HibernateTemplate hibernateTemplate; //注入Hibernate模板类

     private Class entityClass; //DAO的泛型类,即子类所指定的T所对应的类型

     public BaseDao() {//通过反射方法获取子类的Dao所对应的泛型实体类
        Type genType = getClass().getGenericSuperclass();
        Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
        entityClass = (Class) params[0];
     }

     public T get(Serializable id) {
         return (T) hibernateTemplate.get(entityClass,id); //直接使用entityClass
     }

     public void save(T entity) {
         hibernateTemplate.save(entity);
     }

     public void update(T entity) {
         hibernateTemplate.update(entity);
     }

     public HibernateTemplate  getHibernateTemplate () {
         return hibernateTemplate;
     }
  }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics