最近重新搭建了个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在加载的时候是怎么进行的。。。
分享到:
相关推荐
"工具"可能指的是使用JPA的辅助工具,比如IDEA中的JPA插件,它能帮助开发者进行实体类的生成、数据库同步、逆向工程等,提高开发效率。 在提供的【压缩包子文件的文件名称列表】"JPA工程"中,很可能是包含了一个...
This tutorial show how to use Hibernate/JPA Named Queries. We start by explaining why we would use named queries. Next, we show an example of how to use named queries, either with annotations or XML ...
2. **创建实体映射**:使用JPA的反向工程工具,可以基于数据库中的表结构自动生成实体类。这些实体类包含了属性,对应于数据库表的列,以及getter和setter方法。同时,会生成对应的@Entity注解,标识这是一个JPA实体...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在...
Spring Data JPA 是基于 JPA 规范的,因此我们需要创建表示数据库表的实体类。比如,我们可以有一个 `User` 实体类: ```java import javax.persistence.Entity; import javax.persistence.GeneratedValue; import ...
吉帕与 Guice 一起使用的 Jpa 模块,为所有用 @Entity 注释的类提供泛型类型安全的 DAO。 这仍然是一个 WIP 模块。 当前特点: 与 Guice 集成,为所有 @Entity 类提供 Typed Daos 的绑定。 #用法您可以签出 repo 并...
在处理关联关系时,Spring Data JPA提供了懒加载和急加载(Eager vs Lazy Fetching)机制,通过配置实体类的属性映射,可以在需要时按需加载关联的数据,避免了N+1查询问题。同时,它还支持级联操作(Cascade ...
1. **配置数据源和持久化单元**:在`persistence.xml`文件中指定数据源配置、持久化单元名称、实体类所在包路径以及数据库连接参数等信息。 2. **定义实体**:使用`@Entity`、`@Table`、`@Column`等注解将Java类...
JPA 起源:JPA 的前身是 EJB 2.x 中的实体 bean,后来发展为一个独立的 Java 标准。 JPA 优势:JPA 的优势包括平台独立、可移植、可扩展、灵活的映射机制等。 JPA 供应商:JPA 的供应商包括 Oracle、Hibernate、...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据。它为Java开发者提供了一种对象关系映射(ORM)工具,将数据库操作转换为对Java对象的操作,使得开发者可以使用面向对象的方式...
在JPA中,我们经常需要处理SQL查询结果,这些结果可能包含别名,例如在HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)查询中定义的别名。别名的作用是为了使查询语句更加简洁易读,并且...
"13_传智播客JPA详解"系列教程涵盖了JPA的诸多方面,而"13_传智播客JPA详解_JPA中的多对多双向关联实体定义与注解设置"这一部分则专门聚焦于多对多关联的实践。 在关系型数据库中,多对多关联是最为复杂的一种关系...
1. **配置JPA**:首先,工程中必须包含JPA的依赖库,如Hibernate或EclipseLink等实现,这些实现提供了JPA规范的具体功能。在Eclipse中,可以通过添加库或构建路径来引入这些依赖。 2. **实体类(Entity)**:JPA...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它是Java Enterprise Edition(Java EE)的一部分,同时也适用于Java Standard Edition(Java SE)环境。JPA...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它提供了对象/关系映射(ORM)功能,使得开发者可以使用面向对象的方式处理数据库操作。JPA通过提供API和元数据来定义如何将...
3. **JPA实体生命周期**:实体从创建到销毁的过程中,状态会发生变化,JPA提供了对应的方法来管理这些状态。 ### 四、JPA实体管理器 实体管理器(EntityManager)是JPA的主要接口,负责管理实体的生命周期。 1. *...
通过JPA,我们可以定义实体类(Entity),这些实体类代表数据库中的表,实体类的属性则对应于表的列。这种映射方式极大地简化了数据库操作,使开发者能够使用面向对象的方式来处理数据。 JPA的核心概念包括: 1. *...
2. **查询语言**:JPA 2.0引入了JPQL (Java Persistence Query Language),一种面向对象的查询语言,类似于SQL,但更专注于对象和实体。 3. ** Criteria API**:JPA 2.0引入了Criteria API,为动态构建类型安全的...
在Java项目中,JPA的配置通常通过`pom.xml`文件引入依赖,如Spring Data JPA,然后在`application.properties`或`application.yml`文件中设置数据源、实体扫描路径、JPA供应商(如Hibernate)等相关属性。...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它为Java开发者提供了一种对象/关系映射工具来管理Java应用中的关系数据。JPA是Java EE和Java SE环境中持久化数据的标准方式...