アノテーションを介して名前付きクエリを宣言している場合、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);
}