持久性单位
一个持久化单元定义了一组
管理的所有实体类
EntityManager 中的实例
应用。这组实体
classes 表示包含的数据
在单个数据存储中。
持久性单位由
persistence.xml 配置文件。
其 JAR 文件或目录
META-INF 目录包含
persistence.xml 被称为根
的持久性单元。范围
持久性单元由下式确定
持久化单元的根。
每个持久性单元必须是
用唯一的名称标识
到持久化单元的范围。
持久单元可以打包为
WAR 或 EJB JAR 文件的一部分,或者可以
打包成一个 JAR 文件,可以
然后包含在 WAR 或 EAR 中
文件。
如果将持久单元打包为
EJB JAR 文件中的一组类,
persistence.xml 应该放在
EJB JAR 的META-INF 目录。
如果将持久性单元打包为
WAR 文件中的一组类,
persistence.xml 应该位于
WAR 文件的
WEB-INF/classes/META-INF 目录。
如果您将持久性单元打包在
将包含在一个 JAR 文件中
WAR 或 EAR 文件,JAR 文件应该
定位:
- 在 WAR 的
WEB-INF/lib 目录中。
- 在 EAR 文件的顶层。
- 在 EAR 文件的库目录中。
persistence.xml 文件
persistence.xml 定义一个或多个
持久性单元。以下是一个
例如persistence.xml 文件。
<persistence>
<persistence-unit name="OrderManagement">
<description>This unit manages orders and customers.
It does not rely on any vendor-specific features and can
therefore be deployed to any persistence provider.
</description>
<jta-data-source>jdbc/MyOrderDB</jta-data-source>
<jar-file>MyOrderApp.jar</jar-file>
<class>com.widgets.Order</class>
<class>com.widgets.Customer</class>
</persistence-unit>
</persistence>
这个文件定义了一个持久化单元
命名为 OrderManagement,它使用
JTA 感知数据源
jdbc/MyOrderDB。 jar-file 和
class 元素指定托管
持久性类:实体类,
可嵌入的类,并映射
超类。 jar-file 元素
指定可见的 JAR 文件
到打包的持久性单元
包含托管持久性类,
而类元素显式
命名托管持久性类。
jta-data-source(适用于 JTA 感知
数据源)和
non-jta-data-source(不支持 JTA
数据源)元素指定
数据源的全局 JNDI 名称
被容器使用。