JPA的persistence.xml文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JPA的persistence.xml⽂件
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="/xml/ns/persistence"
3 xmlns:xsi="/2001/XMLSchema-instance"
4 xsi:schemaLocation="/xml/ns/persistence
5 /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="ername" 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="/xml/ns/persistence /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