문제

애플리케이션시기/애플리케이션 종료시 JPA로 테이블을 작성하는 가장 좋은 방법은 무엇입니까? 데이터 정의 언어 대신 데이터 조작 언어를 사용합니다. HibernatePersistence를 지속성 제공 업체로 사용하고 있습니다.

도움이 되었습니까?

해결책 2

기본 패키지에서 import.sql로 해결하고 Hibernate.hbm2ddl.auto 값으로 "Create"를 선택합니다. 최대 절전 모드도 지원합니다 Hibernate.hbm2ddl.import_files 재산.

다른 팁

그렇다면 봄을 사용하고 있다면 이 답변 작동합니다.

Spring을 사용하지 않는 경우 DDL 코드를 수동으로 실행해야합니다. Hibernate는 데이터베이스를 수정하기위한 지원이 제한되어 있습니다 (기본적으로 테이블 만 생성 할 수 있음). 따라서 다른 것이 필요한 경우 사용자 정의 SQL을 사용해야합니다.

편집] 스프링을 사용하지 않으면 최대 절전 모드에 도달 할 수있는 방법을 찾으십시오. Session. 호출 doWork() 임의의 SQL을 실행할 수있는 방법.

다른 접근법은 도메인 객체를 생성하고 유지하는 것입니다. 그러나 생성 된 객체의 ID를 이런 식으로 고정하고 JPA 인터페이스를 사용하여 더 복잡한 다른 작업을 수행 할 수 있기 때문에 첫 번째 접근 방식을 선호합니다.

당신은 많은 글을 쓰고 싶지 않습니다 insert 진술, 그런 다음 데이터를 DB에 삽입하고 Squirrelsql과 같은 SQL 도구로 내보내십시오. insert 당신을위한 진술. 추가 파일에 넣고 시작시 파일을 읽고 분할하십시오. ; 각 조각을 실행하십시오.

낮은 수준의 SQL 삽입 문으로 테이블을 채우는 것이 가장 좋은 옵션이 아니라고 생각합니다. 왜냐하면 외래 키를 수동으로 관리하고 코드를 사용 하여이 문장을 리팩토링해야하기 때문입니다.

이미 객체 모델과 ORM이 있으므로 또 다른 휴대용 솔루션은 개체 데이터를 객체로 정의하고 JPA 제공 업체가이를 지속하도록하는 것입니다. 이 솔루션은 번거롭지 만 프로젝트 사용과 같은 프로젝트를 사용합니다. 이것 더 그럴듯하게 만듭니다.

테스트 목적으로 org.codehaus.groovy.maven의 간단한 그루비 스크립트와 gmaven-plugin을 사용했습니다. Gmaven-Plugin은 그루비 스크립트를 실행하고 스크립트는 생성 테스트 재료 Maven 수명주기 동안 import.sql을 만듭니다. 스크립트에서 루프와 카운터를 사용하는 것이 삽입 문으로 채워진 파일을 수동으로 입력하는 것보다 훨씬 좋습니다. 물론 이것은 이전 업데이트와 답변에서 이미 알아 낸 것처럼 보이기 때문에 HBM2DDL 물건을 분류해야합니다.

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