0

考虑代码

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()已实现,为什么它显示上述错误?

4

1 回答 1

3

确保它Sessionorg.hibernate.Session,而不是其他东西(例如org.hibernate.classic.Session)。

org.hibernate.Session和对org.hibernate.classic.Session特别棘手 - 由于后者接口扩展了前者,这种意外错误不会导致其他问题并且不容易被注意到。

于 2012-09-05T18:09:03.430 回答