12.7. 지속성 유닛 배포

지속성 유닛은 다음을 포함하는 논리 그룹화입니다.

  • 엔터티 관리자 팩토리 및 해당 엔터티 관리자의 구성 정보.
  • 엔터티 관리자가 관리하는 클래스.
  • 클래스의 데이터베이스 매핑을 지정하는 메타데이터 매핑.

persistence.xml 파일에는 데이터 소스 이름을 포함한 지속성 유닛 구성이 포함되어 있습니다. JAR 파일 또는 /META-INF/ 디렉터리에 persistence.xml 파일이 포함된 디렉터리는 지속성 유닛의 루트로 사용됩니다.

Jakarta EE 환경에서 지속성 유닛의 루트는 다음 중 하나여야 합니다.

  • EJB-JAR 파일
  • WAR 파일의 /WEB-INF/classes/ 디렉토리
  • WAR 파일의 /WEB-INF/lib/ 디렉토리에 있는 JAR 파일
  • EAR 라이브러리 디렉토리의 JAR 파일
  • 애플리케이션 클라이언트 JAR 파일

예제: 지속성 설정 파일

<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>