论坛首页 Java企业应用论坛

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

浏览 2383 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-15  
     最近重新搭建了个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在加载的时候是怎么进行的。。。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics