Java SE 환경을 위한 JPA 2.x 애플리케이션 개발
Java™ SE 환경의 애플리케이션 서버 컨테이너 외부에서 테스트하도록 지속 애플리케이션을 준비하십시오.
이 태스크 정보
주의: 이들 JPA
명령 도구를 사용할 때, app_server_root/bin
디렉토리가 아니라 profile_root/bin
디렉토리에서 실행하여 릴리스 레벨을 위한 최신 명령 버전이 있는지
확인하십시오.
이 태스크의 경우 JPA 2.1 인터페이스로 컴파일하기 위해 클래스 경로에 com.ibm.ws.jpa-2.1.thinclient_9.0.jar 독립형 Java 아카이브(JAR) 파일을 지정해야 합니다. JPA 2.0 인터페이스로 컴파일하려면 클래스 경로에 com.ibm.ws.jpa-2.0.thinclient_9.0.jar을 지정하십시오. 이 독립형 JAR 파일은 설치 이미지에서 찾을 수 있습니다. 서버 설치 이미지에서 이들 파일의 위치는 ${app_server_root}/runtimes/ 디렉토리입니다.
중요사항: JPA(Java Persistence API)
애플리케이션은 CMP(Container-Managed Persistence) 또는
Bean 관리 지속(BMP)을 사용하는 애플리케이션과
다른 구성 기법이 필요합니다. 이 애플리케이션은 CMP 또는
BMP를 구현하는 애플리케이션과 연관된 일반 배치 기법을 따르지
않습니다. JPA 애플리케이션에서 지속 단위를 정의해야 하며
애플리케이션이 Java SE 환경에서 실행될 수 있도록
해당 특성을 persistence.xml 파일에
구성해야 합니다.
Java SE 환경에서 JPA
애플리케이션을 실행하는 경우 다음과 같은
고려사항이 있습니다.
- 자원 인젝션을 사용할 수 없습니다. 이러한 서비스는 명확하게 또는 프로그램 방식으로 구성해야 합니다.
- EntityManagerFactory 및 EntityManager의 라이프 사이클은 애플리케이션이 관리합니다. 애플리케이션은 이러한 구성의 작성, 조작 및 삭제를 프로그램 방식으로 제어합니다.
프로시저
예
다음은 Java SE 환경을 위한 샘플 persistence.xml 파일입니다.
EclipseLink의 경우:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="TheWildZooPU" transaction-type="RESOURCE_LOCAL">
<!-- additional Mapping file, in addition to orm.xml>
<mapping-file>META-INF/JPAorm.xml</mapping-file>
<class>com.company.bean.jpa.PersistebleObjectImpl</class>
<class>com.company.bean.jpa.Animal</class>
<class>com.company.bean.jpa.Dog</class>
<class>com.company.bean.jpa.Cat</class>
<properties>
<property name="javax.persistence.jdbc.driver"
value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:derby:target/database/jpa-test-database;create=true" />
<property name="javax.persistence.schema-generation.database.action"
value="create" />
<property name="javax.persistence.jdbc.user"
value="user" />
<property name="javax.persistence.jdbc.password"
value="password"/>
</properties>
</persistence-unit>
</persistence>
OpenJPA의
경우:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="TheWildZooPU" transaction-type="RESOURCE_LOCAL">
<!-- additional Mapping file, in addition to orm.xml>
<mapping-file>META-INF/JPAorm.xml</mapping-file>
<class>com.company.bean.jpa.PersistebleObjectImpl</class>
<class>com.company.bean.jpa.Animal</class>
<class>com.company.bean.jpa.Dog</class>
<class>com.company.bean.jpa.Cat</class>
<properties>
<property name="openjpa.ConnectionDriverName"
value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="openjpa.ConnectionURL"
value="jdbc:derby:target/database/jpa-test-database;create=true" />
<property name="openjpa.Log"
value="DefaultLevel=INFO,SQL=TRACE,File=./dist/jpaEnhancerLog.log,Runtime=INFO,Tool=INFO" />
<property name="openjpa.ConnectionFactoryProperties"
value="PrettyPrint=true,PrettyPrintLineLength=72" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)" />
<property name="openjpa.ConnectionUserName"
value="user" />
<property name="openjpa.ConnectionPassword"
value="password"/>
</properties>
</persistence-unit>
</persistence>