2016-06-27 4 views
1

나는 하이버 네이트와 JPA 2.1을 시작하고, 내 persistence.xml을JPA 2.1 스키마 스크립트를 생성하지 않는

<property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/> 
<property name="javax.persistence.schema-generation.scripts.create-target" value="META-INF/sampleCreate.ddl"/> 
<property name="javax.persistence.schema-generation.scripts.drop-target" value="META-INF/sampleDrop.ddl"/> 

테이블이 내 포스트 그레스 DB에 생성에 다음 줄을했다.

그러나 META-INF 폴더에는 sampleCreate.dll이 없으며 오류가 없습니다.

무엇이 누락 되었습니까? 다른 폴더에 생성됩니까?

감사합니다.

+0

지속성 xml이 올바른 것처럼 보입니다. 나는 문제가 경로 가치에 있다고 생각한다. /META-INF/sampleCreate.ddl과 같은 META-INF를 추가/검사 할 수 있습니까? –

+0

@ TanviB는 여전히 나타나지 않습니다. 내 프로젝트 폴더 또는 다른 폴더에 sampleCreate.ddl을 생성한다고 가정합니까? 을 사용하면 import.sql을 제대로 감지 할 수 있습니다. – VHanded

+0

정확한 문제가 있습니다. 작동하지 않고 생성 된 스크립트도 없다. – miroque

답변

1

그래서 해결책을 찾았습니다. 완전한 해결책이 아닙니다.

그래도. 모든

첫째, 나는 제이보스 10.1.0

을 사용하고 난 내 생성 된 SQL 파일을보고하지 않았다, 같은 문제로 고생. 그러나 몇 가지 실험을 한 결과, Wildfly이 내 앱을 배포하면 해당 bin 디렉토리 (C:\wildfly\bin\)에 sql 파일이 생성됩니다.

하지만 프로젝트 원본 폴더에서보고 싶었습니다.

이 경우 ABSOLUTE PATH를 사용해야합니다. 아래에 이와 같이 (그리고 나를 위해 일한) :

<property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/> 
<property name="javax.persistence.schema-generation.scripts.create-target" value="D:/myproject/src/resources/META-INF/sampleCreate.ddl"/> 
<property name="javax.persistence.schema-generation.scripts.drop-target" value="D:/myproject/src/resources/META-INF/sampleDrop.ddl"/> 

그러나이 편리하지 당신이 명령 코드를 작성하는 경우 ...

은 글래스 피시, SpringBoot 등과 작동 방법

난 몰라 알다시피, 나는 그것이 똑같은 것으로 생각한다.

0

내 테스트에 따라 파일은 CWD (현재 작업 디렉토리)에 상대적으로 만들어집니다.

Getting the Current Working Directory in Java

내가 create.ddl의 경로 mvn test을 할 경우 내 스크립트를 얻을 수 있도록 내가 받는다는을 사용하고 있습니다 :

당신은 System.getProperty("user.dir") 시스템 등록 정보를 인쇄하거나 로그인 할 때이 같은 일을하여 볼 수 있습니다 나는 같은 곳에서 maven을 실행하고있다.

현재 디렉터리를 찾으려면 CWD를 기록하거나 인쇄하고 그에 따라 속성 값을 조정하십시오. 상대 경로를 사용할 수도 있습니다. 따라서 내디렉토리에 광산을 넣고 싶다면을 사용하십시오. 이는 내 CWD와 관련된 올바른 디렉토리이기 때문입니다.

관련 문제