一尘不染

使用Hibernate Query.list()避免类型安全警告

hibernate

使用createQuery()。list之后是否可以避免投射警告?

//Type safety: The expression of type List needs unchecked conversion to conform to List<User>
List<User> user = (List<User>) session.createQuery("select u from User u").list();

我希望找到一种通过通用参数或方法参数指定目标对象的方法,如下所示:

List<User> user = session.createQuery("select u from User u").list(User.class);

阅读 301

收藏
2020-06-20

共1个答案

一尘不染

要记住的最重要的一点是, 警告是由于编译器引起的,而不是hibernate的
-您可以告诉编译器忽略未实现的泛型。通过使用HQL,我们以一种类型安全的方式查询数据,不幸的是,java无法进行验证。

有很多方法可以避开hibernate转换的句法丑陋,例如:

1)在投放或使用@suppressWarnings的地方

2)使用Collections.checkedList方法创建新列表。

2020-06-20