Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate查询结果列表和类型安全?_Java_Hibernate_Type Safety - Fatal编程技术网

Java Hibernate查询结果列表和类型安全?

Java Hibernate查询结果列表和类型安全?,java,hibernate,type-safety,Java,Hibernate,Type Safety,这将导致未经检查的警告: public List<Person> list() { return sessionFactory.getCurrentSession().createQuery( "FROM Person" ).list(); } 因为它无法修复它 那么,如何保证类型安全呢?在某些地方,必须从非类型化列表转换为类型化列表。此转换不安全集合。checkedList允许您移动批注,但不能移动更多;这里没什么帮助。注释并不能从技术上“解决”问题,它只是告诉编译器您知道自

这将导致未经检查的警告:

public List<Person> list()
{
  return sessionFactory.getCurrentSession().createQuery( "FROM Person" ).list();
}
因为它无法修复它


那么,如何保证类型安全呢?

在某些地方,必须从非类型化列表转换为类型化列表。此转换不安全<代码>集合。checkedList允许您移动批注,但不能移动更多;这里没什么帮助。注释并不能从技术上“解决”问题,它只是告诉编译器您知道自己在做什么。由于
查询
界面不返回键入的结果(出于正当理由),因此无法绕过警告或SuppressWarnings注释

您应该设置注释并编写一条有意义的注释,说明其合理性(即,因为类型由HQL查询确定,但接口返回非类型列表)

public List<Person> list()
{
  Query query = sessionFactory.getCurrentSession().createQuery( "FROM Person" );
  return Collections.checkedList( query.list(), Person.class );
}
@SuppressWarnings( "unchecked" )