persistence.xml文件必须定义在classpath路径下的META-INF文件夹中。
我们看看基于Hibernate提供的一个比较完整的JPA2.0的persistence.xml文件。
persistence.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 5 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 6 7 <!--必须要有name属性,不能为空 --> 8 <persistence-unit name="jpaPU" transaction-type="RESOURCE_LOCAL"> 9 <!--可选 --> 10 <provider>org.hibernate.ejb.HibernatePersistence</provider> 11 <!--可选 --> 12 <jta-data-source>java:/DefaultDS</jta-data-source> 13 <!--可选 --> 14 <mapping-file>ormap.xml</mapping-file> 15 <!--可选 --> 16 <jar-file>MyApp.jar</jar-file> 17 <!--可选 --> 18 <class>org.acme.Employee</class> 19 <!--可选 --> 20 <shared-cache-mode>ENABLE_SELECTOVE</shared-cache-mode> 21 <!--可选 --> 22 <validation-mode>CALLBACK</validation-mode> 23 24 <!--厂商的特定属性 --> 25 <properties> 26 <!--配置Hibernate方言 --> 27 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /> 28 <!--配置数据库驱动 --> 29 <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 30 <!--配置数据库用户名 --> 31 <property name="hibernate.connection.username" value="root" /> 32 <!--配置数据库密码 --> 33 <property name="hibernate.connection.password" value="root" /> 34 <!--配置数据库url --> 35 <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpa?useUnicode=true&characterEncoding=UTF-8" /> 36 <!--设置外连接抓取树的最大深度 --> 37 <property name="hibernate.max_fetch_depth" value="3" /> 38 <!--自动输出schema创建DDL语句 --> 39 <property name="hibernate.hbm2ddl.auto" value="update" /> 40 </properties> 41 </persistence-unit> 42 43 </persistence>
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
要注意使用的是2.0规范
name
JPA2.0规范要求每一个持久化单元必须有一个名字,不能为空。即persistence-unit name="manager1"的name不能为空。
transaction-type
使用的事务类型。有JTA和RESOURCE_LOCAL两种类型可以选择。在JavaEE环境中默认为JTA,在JavaSE环境中默认为RESOURCE_LOCAL。当在persistent.xml文件使用<jta-data-source>,默认就是JTA事务,使用<non-jta-data-source>,默认就是使用RESOURCE_LOCAL事务。这两种事务的区别不在这里讨论。
provider
EJB Persistence provider的一个实现类。如果不是使用多个厂商的 EJB Persistence实现,是不需要定义的。
mapping-file
指定映射文件的位置
jar-file
指定要解析的jar。jar中所有注解的类、包和所有的hbm.xml都会被添加到persistent-unit的配置中。主要用在JavaEE环境中。
exclude-unlisted-classes
不检查jar中加了@Entity注解的类。
class
明确指定要映射的类
shared-cache-mode
缓存模式。加了@Cacheable注解的默认为二级缓存。有四种模式:ALL-缓存所有实体;NONE-禁止缓存;ENABLE_SELECTIVE-如果加了缓存的标识,是默认的选选 项;DISABLE_SELECTIVE-
enable caching unless explicitly marked as @Cacheable(false)
(not recommended)
validation-mode
实体的验证模式,默认是激活的。当一个实体在创建、更新,在实体发送到数据库前会被进行验证。CALLBACK
: entities are validated on creation, update and deletion. If no Bean Validation provider is present, an exception is raised at initialization time.
properties
配置厂商的一些特定属性。
相关推荐
本教程将详细介绍如何在Spring MVC与JPA的整合中,去除传统的`persistence.xml`配置文件,转而使用属性文件来配置数据源以及DBCP(BasicDataSource)连接池来访问数据库。 首先,我们需要了解Spring MVC和JPA的基本...
“persistence.xml”是JPA规范的一部分,用于配置Java应用程序的数据持久化设置。这个XML文件通常位于项目的“META-INF”目录下,它包含了关于实体类的元数据,以及如何管理和访问这些实体的数据库连接信息。 2. *...
本教程将详细讲解如何通过Spring MVC和JPA的整合,实现无需`persistence.xml`配置文件的数据访问。我们将主要探讨以下几个方面: 1. **Spring MVC介绍**: Spring MVC是Spring框架的一个模块,它提供了模型-视图-...
Java持久化API(Java Persistence API)是Java平台上的一个标准,用于管理和操作关系数据库中的数据。它简化了对象关系映射(ORM),允许开发者以面向对象的方式处理数据,而无需直接编写SQL语句。JPA通过在Java类和...
`persistence.xml`是Java Persistence API (JPA)的标准配置文件,它位于项目的`META-INF`目录下。该文件主要负责定义实体类、数据源、事务管理器、持久化单元等关键信息,为Hibernate提供运行时的配置依据。通过合理...
1. **配置JPA供应商**:在项目的pom.xml(Maven)或build.gradle(Gradle)文件中添加EclipseLink的依赖。 2. **设置数据源**:配置数据库连接信息,如URL、用户名和密码。 3. **实体配置**:在Java类上使用`@Entity...
本文将深入探讨如何利用Spring MVC与JPA进行整合,并通过简化`persistence.xml`配置文件来优化项目结构。 首先,Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供了...
当你在程序运行时遇到“javax.persistence”问题,这通常意味着你的项目缺少了`javax.persistence.jar`库,导致无法执行JPA相关的操作。解决这个问题的最直接方法就是将提供的压缩包导入到你的项目类路径中,确保JPA...
通过配置部署描述符(如`persistence.xml`),可以指定数据源、实体类、持久化单元等信息,进一步定制持久化行为。 总结来说,`ejb3-persistence.jar`和`hibernate-annotations.jar`是Java企业级开发中的重要组件,...
在 MyEclipse 中,我们可以使用 Hibernate 根据现有的数据库表结构生成实体和 hbm.xml 配置文件,这样可以避免手动编写 JPA 或 Hibernate 实体类。下面是生成实体和 hbm.xml 文件的步骤: 首先,需要创建一个 JPA ...
EJB3的持久化特性基于Java Persistence API(JPA),它是Java EE和Java SE中用于对象/关系映射的标准。JPA允许开发者使用面向对象的方式来操作数据库,通过注解(Annotations)和XML配置文件定义对象与数据库表之间...
在Java企业级应用开发中,EJB(Enterprise JavaBeans)和JPA(Java Persistence API)是两个关键的技术组件。EJB用于实现业务逻辑,而JPA则是Java平台上的ORM(对象关系映射)标准,帮助开发者处理数据库操作。在本...
- **ORM支持**:通过注解或XML配置文件,JPA允许开发人员将Java对象映射到关系数据库表。 - **查询语言**:提供了两种查询方式:JPQL(Java Persistence Query Language)和Criteria API。JPQL是一种面向对象的查询...
通过`persistence.xml`文件配置数据源、JPA供应商、实体类等信息。 ### 9. 框架集成 JPA可以与Spring、Hibernate等框架集成,进一步提升开发效率。例如,Spring Data JPA 提供了一种声明式的方式进行数据访问,...
本书详细介绍了如何配置JPA,包括在Java应用服务器中设置持久化单元(Persistence Unit),以及如何在persistence.xml文件中定义数据源、提供者和其他配置属性。同时,书中还涵盖了事务管理和并发控制,这是多用户...
**JPA(Java Persistence API)**是Java平台上用于对象关系映射(ORM)的一个标准API,它提供了一种规范化的框架来管理Java应用程序中的持久化数据。JPA允许开发者使用面向对象的编程模型来处理数据库操作,使得业务...
2. **配置 OpenJPA**:创建一个 `persistence.xml` 文件,定义持久化单元(Persistence Unit),包括数据库连接信息、实体类等。 ```xml <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi=...
- **创建JPAHello项目**:这一步包括创建数据库表、创建项目、添加JPA能力到项目中、使用JPA配置文件编辑器修改persistence.xml文件等内容。 - **使用反向工程快速生成JPA实体类和DAO**:MyEclipse提供了一键式工具...
《Apress.Pro.EJB.3.Java.Persistence.API》这本书专注于企业级Java开发中的核心技术——EJB(Enterprise JavaBeans)3.0和Java Persistence API(JPA)。EJB是Java平台上用于构建可部署在服务器端的企业级应用的...