문제

요약

나는 실행하려고 Java 웹 응용 프로그램 JPA2.0 예입니다.이 예 응용 프로그램 실행하도록 작성되었에 Glassfish, 를 사용하여, EclipseLink 로 JPA 공급자입니다.고 싶으로 변환하에서 실행 TomEEOpenJPA 로 JPA 공급자 수는 없지만 어떤 상세한 튜토리얼을 얻기를 위한 실행 OpenJPA.

문제

나는 데 문제가로 변환하 persistence.xml 과 작업 OpenJPAEclipseLink.특히,주어진 persistence.xml 을 지정하지 않:

  • Entity 클래스입니다.이러한 필요?
  • 원하는 JPA 공급자입니다.니다 컨테이너의 기본을 뭔가?
  • 은 JDBC 드라이버입니다.지정하려면 어떻게 해야 합는"메모리에서"DB(초기 테스트용)?

도:

상세정보

아래에 EclipseLink persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    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_0.xsd">
    <persistence-unit name="order" transaction-type="JTA">
        <jta-data-source>jdbc/__default</jta-data-source>
        <properties>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
            <property name="eclipselink.ddl-generation.output-mode"
                value="both" />
        </properties>
    </persistence-unit>
</persistence>

내가 다음 Entity 클래스:

  • order.entity.LineItem
  • order.entity.LineItemKey
  • order.entity.Order
  • order.entity.Part
  • order.entity.PartKey
  • order.entity.Vendor
  • order.entity.VendorPart

질문

  • 사람이 무엇을 알고 해당하는 persistence.xml 모 OpenJPA?
  • 또는,사람이 수리하는 OpenJPA 튜토리얼을 커버하는 이러한 문제는 것으로 그냥 좋
도움이 되었습니까?

해결책

는 경우 추가 openjpa.jdbc.SynchronizeMappings 제공 아래와 같이 OpenJPA 것이 자동으로 만들의 모든 테이블을,모든 당신의 기본 키와 모든 외국 열쇠를 정확하게 일치하는 개체

<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>

또는,당신은 당신이 사용할 수 있습 EclipseLink 에 TomEE 가 EclipseLink 항아리 <CATALINA_HOME>/lib/

여기에 참조 일반적인 속성 PersistenceProvider

다른 팁

Foreign key

다음 줄을 만들지 않는 외국 열쇠:

<property name="openjpa.jdbc.SynchronizeMappings" 
          value="buildSchema(ForeignKeys=true)"/>

만 스키마 생성하고 삭제하는 내용의 데이터베이스입니다.

하지만 당신이 원하는 경우 외국인을 만들 키를 사용하여 다음과 같은 라인:

<property name="openjpa.jdbc.SynchronizeMappings" 
          value="buildSchema(foreignKeys=true,schemaAction='dropDB,add')"/>
<property name="openjpa.jdbc.SchemaFactory" 
          value="native(foreignKeys=true)" />
<property name="openjpa.jdbc.MappingDefaults" 
          value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict"/>

보 생성 SQL

다른 방법으로,당신이보고 싶은 경우에는 SQL 출력:

<property name="openjpa.Log" 
          value="DefaultLevel=TRACE,SQL=TRACE" />

참고:하기 위해시 생성되는 출력에서 TomEE 콘솔,당신을 변경할 필요가 로그 수준에서 파일 loggin.propertiesopenjpa.level = FINEST


에 더 많은 참조 http://openjpa.apache.org/faq.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top