使用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);
要记住的最重要的一点是, 警告是由于编译器引起的,而不是hibernate的 -您可以告诉编译器忽略未实现的泛型。通过使用HQL,我们以一种类型安全的方式查询数据,不幸的是,java无法进行验证。
有很多方法可以避开hibernate转换的句法丑陋,例如:
1)在投放或使用@suppressWarnings的地方
2)使用Collections.checkedList方法创建新列表。