HibernateCallback实现

时间:2012-09-05 12:05:47

标签: spring 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()已实施,然后显示上述错误的原因?

1 个答案:

答案 0 :(得分:3)

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

这对org.hibernate.Sessionorg.hibernate.classic.Session特别棘手 - 因为后一种界面延伸了前者,这种意外错误不会引起其他问题而且不容易被注意到。