質問:JPAエンジニアリングのNamedQueryが有効になるには、エンティティのフルパスを書く必要があります.
最近Spring 3を再構築しました.0.5+Hibernate-Jpa2.0の工事、テストの時ずっと以下の誤りを報告します:
HQL文findAllPersonsも最も簡単です.
そしてPersonをクラスの全パスに変更し、テストに成功しました.
以前はNamedQueryと書いていた時もそうでしたが、少しも間違っていませんでした.長い間チェックしていましたが、エンティティを構成するときにエラーが発生したことに気づきました.
エラーコード:
正しいコードは次のとおりです.
問題は解決しましたが、Hibernateがロード中にどのように行われたのかはまだ分かりません..
Caused by: org.hibernate.HibernateException: Errors in named queries: findAllPersons
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:397)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1327)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
... 55 more
HQL文findAllPersonsも最も簡単です.
@NamedQuery(name = "findAllPersons", query = "select p from Person p")
そしてPersonをクラスの全パスに変更し、テストに成功しました.
以前はNamedQueryと書いていた時もそうでしたが、少しも間違っていませんでした.長い間チェックしていましたが、エンティティを構成するときにエラーが発生したことに気づきました.
エラーコード:
@Entity(name = "person_table")
@NamedQuery(name = "findAllPersons", query = "select p from Person p")
public class Person implements Serializable {
正しいコードは次のとおりです.
@Entity
@Table(name = "person_table")
@NamedQuery(name = "findAllPersons", query = "select p from Person p")
public class Person implements Serializable {
問題は解決しましたが、Hibernateがロード中にどのように行われたのかはまだ分かりません..