2013-05-04 5 views
2

MySQL 테이블에 데이터를 자동으로 삽입하려고합니다. 가게 있습니다javax.persistence.sql-load-script-source를 사용하는 방법?

<?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="my-PU" transaction-type="JTA"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <jta-data-source>jdbc/coding</jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties> 
     <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> 
     <property name="javax.persistence.ddl-drop-script-source" value="drop.sql" /> 
     <property name="javax.persistence.sql-load-script-source" value="insert.sql"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

SQL 스크립트는 (& 인 insert.sql을 drop.sql) : 그러므로 나는 내 의 persistence.xml에서 JPA 속성 "javax.persistence.sql 부하 스크립트 소스"를 사용하려고 "src/main/resources"에 입력하고 SQL 명령을 포함하십시오. 불행히도 이러한 명령은 실행되지 않습니다. 나는 재산을 잊었습니까?

답변

2

어떤 EclipseLink 버전을 사용하고 있습니까? 이 속성은 JPA 2.1의 일부이므로 EclipseLink 2.5 버전 (아직 출시되지 않음)을 사용해야합니다.

오류가 발생했는지 확인하려면 가장 좋은 상태로 로그온하십시오.

0

문제는이 속성 값에 있다고 생각합니다. src과 관련된 위치를 설정해야합니다. 이런 식으로 뭔가 :

<properties> 
    <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> 
    <property name="javax.persistence.ddl-drop-script-source" value="main/resources/drop.sql" /> 
    <property name="javax.persistence.sql-load-script-source" value="main/resources/insert.sql"/> 
</properties> 

난 당신이 제임스에 추가하는 방법에 대한 Database Schema Creation

0

더 일반적인 대답은 JPA 2.1 JEE7 사양의 일부라는 것이다 자세한 내용은이 링크를 방문하시기 바랍니다. 제이보스 8

<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> 
<property name="javax.persistence.schema-generation.create-source" value="script"/> 
<property name="javax.persistence.schema-generation.create-script-source" value="META-INF/sql/create.sql" /> 
<property name="javax.persistence.sql-load-script-source" value="META-INF/sql/data.sql" /> 
<property name="javax.persistence.schema-generation.drop-source" value="script" /> 
<property name="javax.persistence.schema-generation.drop-script-source" value="META-INF/sql/drop.sql" /> 

JEE6를 구현하는 애플리케이션 서버의 예로는 제이 보스 (7)이고, 그러나, 구현 (JPA 2.1 서버 패치없이) 이러한 속성을 사용할 수 호환 애플리케이션 서버 (JPA 2.0 지정)을 JEE6 JEE7 및 이러한 속성을 사용할 수 있어야합니다.

persistence 태그의 version 속성을 관찰하는 것이 확실하지 않은 경우 힌트. 이 경우는 2.0입니다. 2.1으로 지정되고 제대로 구성되어 있으면 JPA 2.1이 사용되고 속성이 작동합니다.