Hibernate
에 H2
을 사용하고 싶습니다. 스키마를 자동으로 생성하고 싶습니다. 온라인으로 많은 예제가 있고 구성이 괜찮은 것처럼 보이지만 작성되지 않았습니다. 이전에는 MySQL
과 함께 사용했는데 아무런 문제가 없었습니다. H2
어디서나 추가 매개 변수가 포함됩니까? 다음과 같이Hibernate - H2 데이터베이스가 생성되지 않았습니다.
내 퍼시스턴스 유닛이 persistence.xml
에 정의되어 show_sql 이후
<persistence-unit name="some.jpa.name"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!-- tried with and without class property
<class>some.package.KeywordTask</class>
-->
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:h2:./test" />
<property name="javax.persistence.jdbc.user" value="" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="show_sql" value="true" />
</properties>
</persistence-unit>
이 true로 설정되어, 스키마가 생성되지 않습니다, 즉를 나는 문을 만들어 볼 것으로 예상하지만 아무 일도 발생하지 않습니다.
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
KeywordTask task = new KeywordTask();
task.setKeyword(keywordTask.getKey());
task.setLimit(keywordTask.getValue());
em.persist(task);
em.getTransaction().commit();
em.close();
이 원인 예외가 발생합니다 : 내 코드에서 어떤 장소에서
public static EntityManagerFactory emf = Persistence.createEntityManagerFactory("some.jpa.name");
, 내가 엔티티를 유지하는 것을 시도하고있다 :
나는 나의EntityManagerFactory
final
static
변수로 유지
org.h2.jdbc.JdbcSQLException: Table "KEYWORDTASK" not found;
이는 t 그는 스키마가 만들어지지 않습니다.
스키마를 어떻게 만들 수 있습니까?
도움이 필요하십니까? [this] (http://stackoverflow.com/a/25156520/574975) – jaivalis
@jaivalis 제 경우는 아주 간단합니다. 도움이 될지 모르지만 더 나은 방법이 있어야합니다. – ram