12.7. 部署 Persistence 单元

持久性单元是逻辑分组,包括:

  • 实体管理器工厂及其实体管理器的配置信息。
  • 由实体管理器管理的类.
  • 映射元数据,指定类到数据库的映射.

persistence.xml 文件包含持久性单元配置,包括数据源名称。JAR 文件或 /META-INF/ 目录包含 persistence.xml 文件的目录被称为持久性单元的根目录。

在 Jakarta EE 环境中,持久性单元的根必须是以下之一:

  • EJB-JAR 文件
  • WAR 文件的 /WEB-INF/classes/ 目录
  • WAR 文件的 /WEB-INF/lib/ 目录中的 JAR 文件
  • EAR 库目录中的 JAR 文件
  • 应用程序客户端 JAR 文件

示例: Persistence 设置文件

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_2.xsd"
   version="2.2">
   <persistence-unit name="example" transaction-type="JTA">
      <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
      <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
      <mapping-file>ormap.xml</mapping-file>
      <jar-file>TestApp.jar</jar-file>
      <class>org.test.Test</class>
      <shared-cache-mode>NONE</shared-cache-mode>
      <validation-mode>CALLBACK</validation-mode>
      <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
      </properties>
   </persistence-unit>
</persistence>