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 に答える