Hibernate回调实现



考虑代码

public List<Product> listProducts(){
    HibernateCallback callBack=new HibernateCallback(){
    public Object doInHibernate(Session session){
       Query query=session.createQuery("from Product");
       return query.list();
     }
    };
    return (List<Product>)hibernateTemplate.execute(callBack);
}

上面的代码有什么问题吗?在eclipse Helios中,它显示以下错误:

The type new HibernateCallback(){} must implement the inherited abstract method HibernateCallback.doInHibernate(Session)

那么实现doInHibernate()为什么会出现上述错误呢?

确保Sessionorg.hibernate.Session,而不是其他内容(例如org.hibernate.classic.Session)。

org.hibernate.Sessionorg.hibernate.classic.Session对特别棘手——由于后一个接口扩展了前一个接口,这种意外错误不会引起其他问题,也不容易被注意到。

最新更新