如何检查Hibernate中Query对象返回的用户列表类型?

时间:2011-12-29 07:27:25

标签: java hibernate generics

要使用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();

这再次发出警告:“未经检查的类型转换。”

如何查看用户列表的类型?

2 个答案:

答案 0 :(得分:2)

我不确定但对我来说似乎没问题。

您可能想要使用

@SuppressWarnings (value="unchecked")

答案 1 :(得分:1)

有关模板参数类型的信息将在运行时删除。这称为类型擦除。所以,你必须事先知道你要投的那种类型。为避免编译器警告,您可以使用@SuppressWarnings("unchecked")

此外,您可以尝试 Hibernate Typesafe Criteria ,看看here