我在Java中使用Hibernate在我的数据访问对象中执行以下操作:
public List<Device> getDevices() {
return getCurrentSession().createQuery("from Device").list();
}
这给了我以下警告:
Type safety: The expression of type List needs unchecked conversion to conform to List<Device>
为了删除我正在使用的警告
@SuppressWarnings("unchecked")
但我正在寻找一种更好的方法来删除此警告,理想情况下处理来自数据库的“设备”以外的其他内容。
有什么想法吗?
答案 0 :(得分:3)
Java没有具体化的泛型,所以遗憾的是你无法摆脱注释:( 如果您在SO上搜索此内容,最常推荐的解决方案之一是使用Collections.checkedList,这可能会对您有所帮助
答案 1 :(得分:1)
由于您在问题中添加了spring
标记,我假设您已经在使用Spring。在这种情况下,使用SpringData和JPA而不是Hibernate特定的东西会容易得多。否则你无法真正摆脱警告,因为你无法改变api。
答案 2 :(得分:0)
hibernate会话对象不会返回类型化的Query。您可以使用EntityManager(hibernate支持),它允许您在createQuery()上指定类型。