如何包装Hibernate会话API避免"未选中"泛型警告

时间:2014-04-27 16:53:51

标签: java hibernate generics

我正在编写Hibernate Session API的包装器:

    @SuppressWarnings("unchecked")
    public <T> List<T> execQuery(String hql){
    Session s=sf.getCurrentSession();
    return s.createQuery(hql)
                .list();
}

Hibernate Session API的list()函数似乎使用原始类型。所以如何包装这个函数,让我的包装器的客户端安全地使用如下:

  List<BusinessObject> bo= xxx.execQuery(...);

1 个答案:

答案 0 :(得分:2)

至少在一个地方无法避免@SuppressWarnings("unchecked")

由于List是原始类型,因此您必须在某处进行未经检查的转换。你能做的最好的事情就是将它包含在一个地方,这就是你用execQuery做的事情。