我写了个泛型的DAO  BaseDAOimpl<E> 代码如下
public class BaseDAOimpl<E> extends HibernateDaoSupport implements BaseDAO<E> { private Class<E> type; public BaseDAOimpl(Class<E> tpyes) {
this.type = tpyes;
} public void createEntity(E entity) { this.getHibernateTemplate().save(entity);
} public void deleteEntity(E entity) {
this.getHibernateTemplate().delete(entity); } @SuppressWarnings("unchecked")
public E getByEntityId(int entityId) {
return (E) this.getHibernateTemplate().get(type, entityId);
} public void updateEntity(E entity) {
this.getHibernateTemplate().saveOrUpdate(entity);
;
} public PageModel<E> getEntitys(int firstResult, int maxResults) {
String queryString=StringUtil.getHQL(type);
return getEntitys(queryString, firstResult, maxResults);
} @SuppressWarnings("unchecked")
public PageModel<E> getEntitys(String hql, int firstResult, int maxResults) {
if (!hql.equals("") && hql != null) {
PageModel<E> entityPage = new PageModel<E>();
List<E> entitys = super.getSession().createQuery(hql)
.setFirstResult(firstResult).setMaxResults(maxResults)
.list();
entityPage.setContext(entitys);
int totalCount = ((Long) super.getSession().createQuery(
StringUtil.getCountQuery(hql)).uniqueResult()).intValue();
Page page = PageUtil
.createPage(totalCount, firstResult, maxResults);
entityPage.setPage(page);
return entityPage;
} else {
return getEntitys(firstResult, maxResults);
}
}
}
当我传进去一个HQL
String queryString = "from Forums as f left join f.parents as p where p.forumId is null";
本来应该查询的结果是一个数组对象,里面放有List<forums>对象
但由于是泛型的,编译期间就认定结果是一个List<forums>而不是List<Object[]>测试的时候报转型异常
不知道大家有没有遇到过类似的情况,该怎么解决啊