`
angellin0
  • 浏览: 114084 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

问题:JPA 工程中的NamedQuery需要写实体全路径才能生效

    博客分类:
  • JPA
阅读更多
     最近重新搭建了个Spring3.0.5+Hibernate-Jpa2.0的工程,测试时一直报以下错误:
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在加载的时候是怎么进行的。。。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics