原:
private final Class<T> clazz;
public HibernateDao(Class<T> clazz) {
this.clazz = clazz;
}
需要从子类中传递:
public OccupierDaoImpl() {
super(Occupier.class);
}
指定相应的Bean.class 不优雅
修改后:
public HibernateDao() {
ParameterizedType parameterizedType = (ParameterizedType) this
.getClass().getGenericSuperclass();
clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
}