1

アノテーションを介して名前付きクエリを宣言している場合、Hibernate Sessionはそれを見つけることができませんが、hbm.xmlに入れると正常に機能します。

これは、すべてのHibernateエンティティがhbm.xmlを介して定義されているレガシーシステムであり、私はそれをアノテーションにゆっくりと移行しようとしています。

Is it possible to distribute hibernate metadata via both hbm.xml and annotations?

例外は

org.hibernate.MappingException: Named query not known: queryName

エンティティクラスは

@Entity
@NamedQueries({

    @NamedQuery(name="queryName", queryString="from Product pro")
})

public class Product extends HibernateEntity

セッションの取得

        SessionFactory hibernateSessionFactory = (SessionFactory) hibernateSessionFactories.get(targetDB);

        if (hibernateSessionFactory != null) 
        {
            session = hibernateSessionFactory.openSession(new HibernateEntityDifferenceInterceptor());

            session.setFlushMode(FlushMode.COMMIT);
        }
4

1 に答える 1

0

Springのサポートがあれば、それは間違いなく可能です。したがって、Springを使用しない場合は、Springの内部のソースを調べて、Springがどのように実装されているかを理解できます。

于 2012-09-18T17:07:27.060 に答える