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" )