2 newbie programmer Newbie_Programmer 于 2015.07.07 17:28 提问

从数据库去取出数据的类型转换问题

Session session = HibernateSessionFactory.getSession();
List

list = new ArrayList();
if(menuId > 0){
String hql = " from Menu m left join m.role where roleId = ";
list = session.createQuery( hql + menuId).list();
    }
    session.close();

我从数据库中取出数据,放到list的集合中,但总是报错:
Type safety: The expression of type List needs unchecked conversion to conform to List

请问如何解决

6个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.07 17:33
list返回类型建议你加上泛型,你没有加,所以有警告。定义加上泛型List<Object> list = new ArrayList();
danielinbiti
danielinbiti 回复Newbie_Programmer: 把list缓存list<object> 取出来有问题吗?
2 年多之前 回复
Newbie_Programmer
Newbie_Programmer 回复danielinbiti: object类型的
2 年多之前 回复
danielinbiti
danielinbiti 回复Newbie_Programmer: 分两步 Query query=session.createQuery,看看query.list()里面是什么对象
2 年多之前 回复
Newbie_Programmer
Newbie_Programmer List<Menu> list = new ArrayList<Menu>(); 加了
2 年多之前 回复
Newbie_Programmer
Newbie_Programmer List<Menu> list = new ArrayList<Menu>(); 加了
2 年多之前 回复
diaoliwei2
diaoliwei2   Rxr 2015.07.07 17:40

List

list = new ArrayList()试试
diaoliwei2
diaoliwei2 回复Newbie_Programmer: Query query = session.createQuery( hql + menuId);list = query.list()这样呢?
2 年多之前 回复
Newbie_Programmer
Newbie_Programmer 不行
2 年多之前 回复
maoweijie98
maoweijie98   2015.07.07 17:52

List

list = new ArrayList();
list = (List)session.createQuery( hql + menuId).list();
ltw518726
ltw518726   2015.07.07 17:54

是不存在问题的啊 List list = new ArrayList();

Newbie_Programmer
Newbie_Programmer 放进去之后是object的类型
2 年多之前 回复
yuke198907
yuke198907   2015.07.07 17:55

你这个hql能执行?总感觉哪里不对呢

Newbie_Programmer
Newbie_Programmer 可以 这个是左外链接
2 年多之前 回复
guonan198811
guonan198811   2015.07.09 09:20

hibernate有自己专门的list获取类型,和Generic的list是不一样的,需要你在定义泛型类型T时就直接定义为hibernate下的list类型,这样就可以直接转化了

Csdn user default icon
上传中...
上传图片
插入图片