对于泛型服务dao层,我有一个genericService支持类(genericService,GenericServiceImpl,GenericDao,GenericHibernateDao)。从另一个扩展参数化泛型类扩展类
Normaly它工作得很好,当我从扩展抽象通用services.When任何类型的参数化的服务,我延长不同的服务这个扩展服务它给:
造成的:java.lang.ClassCastException:java.lang中。 Class不能转换为java.lang.reflect.ParameterizedType
错误。
我GEnericHibernateDao:
@Transactional 公共抽象类GenericHibernateDaoSupport扩展的HibernateDaoSupport实现GenericDaoTemplate { 私有类类型;
public GenericHibernateDaoSupport() {
this.type = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Autowired
@Qualifier(value = "productSessionFactory")
public void bindSessionFactory(SessionFactory sessionFactory)
{
setSessionFactory(sessionFactory);
}
public Class<T> getType() {
return type;
}
public void setType(Class<T> type) {
this.type = type;
}
protected Session getCurrentSession() {
return getHibernateTemplate().getSessionFactory().getCurrentSession();
}
public ID persist(T newInstance) {
return (ID) getHibernateTemplate().save(newInstance);
}
public void update(T transientObject) {
getHibernateTemplate().update(transientObject);
}
这里是我的非标准扩展的HibernateDAO类:
@Repository
public class StandadHibernateDao extends standardHibernateDaoSupport<Standard, Long> implements StandardDao {
上方延伸的操作工作正常,但是当我试图像这样:
@Repository
public class ExtendStandardGatewayHibernateDao extends StandadHibernateDao implements ExtendedStandardDao {
它抛出:
导致:java.lang.ClassCastException:java.lang.Class不能转换为java.lang.reflect.Paramete rizedType。
你有什么想法吗?
有什么想法吗? – erhan
http://stackoverflow.com/questions/11067512/java-lang-class-cannot-be-cast-to-java-lang-reflect-parameterizedtype此链接可能有助于 –