要使用Hibernate从数据库中检索数据,我使用以下语法:
Query query = session.createQuery("from User where name=? and password=?");
query.setString(0,user.getName());
query.setString(1,user.getPassword());
List list = query.list(); // Line 1
第1行显示警告:“列表是原始类型。应该参数化对泛型类型列表的引用。”
现在,如果我使用以下方法添加泛型:
List<User> list = (List<User>) query.list();
这再次发出警告:“未经检查的类型转换。”
如何查看用户列表的类型?
答案 0 :(得分:2)
我不确定但对我来说似乎没问题。
您可能想要使用
@SuppressWarnings (value="unchecked")
答案 1 :(得分:1)
有关模板参数类型的信息将在运行时删除。这称为类型擦除。所以,你必须事先知道你要投的那种类型。为避免编译器警告,您可以使用@SuppressWarnings("unchecked")
。
此外,您可以尝试 Hibernate Typesafe Criteria ,看看here。