1、在加入泛型抽取时,报错T.class报错
/*
* 删除
*/
public void delete(Long uuid) {
//让对象进入持久化状态
T t = this.getHibernateTemplate().get(T.class, uuid);
//执行删除操作
this.getHibernateTemplate().delete(t);
}
/**
* 根据编号查询对象
*/
public T get(Long uuid) {
return this.getHibernateTemplate().get(T.class, uuid);
}
原因:由于T是泛型没有指明具体的类,故报错,在通用类在注入一个类属性即可!
2、在写basedao实现类时,由于没有指定具体的类,所以需要通过无参构造方法获取子类调用父类时传入的类,
//添加无参构造
public BaseDao() {
//通过子类获取父类
Type baseDaoClass = getClass().getGenericSuperclass();
//转成参数化的类型
ParameterizedType pType = (ParameterizedType)baseDaoClass;
//获取参数类型的数组
Type[] types = pType.getActualTypeArguments();
//得到泛型里的T类型
Type tagetType = types[0];
//转成class类型
entityClass = (Class<T>)tagetType;
}
3、在dao实现类中的dao实现靠的是其子类实现,所以在子类继承BaseDao时,需要将类属性注入到父类(BaseDao)中
/**部门业务实现
* @author Administrator
*
*/
public class DepBiz<T> extends BaseBiz<Dep> implements IDepBiz {
/**数据访问注入*/
private IDepDao depDao;
public IDepDao getDepDao() {
return depDao;
}
public void setDepDao(IDepDao depDao) {
this.depDao = depDao;
super.setBaseDao(depDao);
}
}
4、在前端抽取时因为dep的列属于私有,所以应该从js文件中提取出来