사용자 도구

사이트 도구


java:jpa:schema_generation

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:jpa:schema_generation [2014/01/03 14:35]
kwon37xi
java:jpa:schema_generation [2015/09/20 13:41] (현재)
kwon37xi [읽어보기]
줄 3: 줄 3:
   * ''$CLASSPATH/META-INF/persistence.xml'' 파일이 존재한다고 가정한다.   * ''$CLASSPATH/META-INF/persistence.xml'' 파일이 존재한다고 가정한다.
   * persistence.xml에 **hibernate.dialect** 가 잘 정의돼 있어야 한다.   * persistence.xml에 **hibernate.dialect** 가 잘 정의돼 있어야 한다.
 +  * ''No appropriate connection provider encountered'' 에러가 발생하는 것은 Persistence Unit 속성에 ''hibernate.hbm2ddl.auto''이 지정돼 있기 때문이다. 이를 뺄 것.
  
 ===== Gradle ===== ===== Gradle =====
   * [[http://divinespear.github.io/jpa-schema-gradle-plugin/|jpa-schema-gradle-plugin]]   * [[http://divinespear.github.io/jpa-schema-gradle-plugin/|jpa-schema-gradle-plugin]]
 +
 +===== JPA 2.1 =====
 +  * [[http://docs.oracle.com/javaee/7/api/javax/persistence/Persistence.html#generateSchema%28java.lang.String,%20java.util.Map%29|javax.persistence.Persistence.generateSchema]]
 +
  
 ===== Java 코드를 통한 DDL 생성 ===== ===== Java 코드를 통한 DDL 생성 =====
 +  * [[http://stackoverflow.com/questions/3393092/schema-export-with-hibernate-annotations|java - Schema export with hibernate annotations - Stack Overflow]]
 <code java> <code java>
 import java.util.HashMap; import java.util.HashMap;
줄 16: 줄 22:
 public class JPASchemaExport { public class JPASchemaExport {
  public static void main(String[] args) {  public static void main(String[] args) {
 + String persistenceUnitName = args[0];
 + String outputFile = args[1];
 +
  Ejb3Configuration cfg = new Ejb3Configuration();  Ejb3Configuration cfg = new Ejb3Configuration();
  HashMap<String, String> props = new HashMap<String, String>();  HashMap<String, String> props = new HashMap<String, String>();
- Ejb3Configuration configured = cfg.configure("퍼시스턴스유닛이름", props);+ Ejb3Configuration configured = cfg.configure(persistenceUnitName, props);
  SchemaExport se = new SchemaExport(configured.getHibernateConfiguration());  SchemaExport se = new SchemaExport(configured.getHibernateConfiguration());
- se.setOutputFile("파일경로");+ se.setOutputFile(outputFile);
  se.setFormat(true|false);  se.setFormat(true|false);
  se.setDelimiter(";");  se.setDelimiter(";");
줄 88: 줄 97:
   * **''<implementation>jpaconfiguration</implementation>''** 이 부분의 값을 ''annotationconfiguration''으로 변경하면 JPA가 아닌 Hibernate Annotation API로 간주하게 바뀐다.   * **''<implementation>jpaconfiguration</implementation>''** 이 부분의 값을 ''annotationconfiguration''으로 변경하면 JPA가 아닌 Hibernate Annotation API로 간주하게 바뀐다.
   * **''<export>false</export>''**의 값이 true이면 Database에 대고 DDL 명령을 실행하려들게 되므로 주의!   * **''<export>false</export>''**의 값이 true이면 Database에 대고 DDL 명령을 실행하려들게 되므로 주의!
 +
 +===== 읽어보기 =====
 +  * [[http://jandrewthompson.blogspot.kr/2009/10/how-to-generate-ddl-scripts-from.html|Andrew Thompson's Blog: How To Generate DDL Scripts from Hibernate]]
 +  * [[http://stackoverflow.com/questions/3393092/schema-export-with-hibernate-annotations|java - Schema export with hibernate annotations - Stack Overflow]]
 +  * [[http://www.thoughts-on-java.org/standardized-schema-generation-data-loading-jpa-2-1/|Standardized schema generation and data loading with JPA 2.1]]
java/jpa/schema_generation.1388727304.txt.gz · 마지막으로 수정됨: 2014/01/03 14:35 저자 kwon37xi