2013-05-17 3 views
3

HSQLDB와 함께 Hibernate를 사용하고 있는데, 애플리케이션이 시작될 때 HSQLDB에 테이블이 생성되지 않는다는 것을 알았습니다. HSQLDB에서 모든 테이블을 생성하는 것은 첫 번째 선택 또는 첫 번째 삽입까지입니다. 응용 프로그램을 시작할 때 모든 테이블을 만들 수있는 방법이 있습니까?Hibernate가 시작할 때 테이블을 생성하는 방법?

<property name="hbm2ddl.auto">create</property> 
<prop key="hibernate.hbm2ddl.auto">create</property> 

을하지만 서버를 시작할 때 테이블이 아직 생성되지 않습니다 판게아에 회신

편집 : 그것은 다음과 같은 포함되도록

나는 우리의 최대 절전 모드 CFG XML 파일을 수정했습니다. 첫 번째 삽입 또는 선택 후에 만 ​​생성됩니다. 당신은 테이블이 Hibernate 세션 팩토리의 생성 중에 생성 될 것이라고 언급했다. 우리 코드는 삽입이나 선택이 수행 될 때까지 Configuration.buildSessionFactory()를 호출하지 않습니다. 그 전에 테이블을 만들 수있는 방법이 있습니까?

답변

2

그럼 최대 절전 모드가 일반적으로 작동하는 방식입니다. 호출 될 때 시작됩니다. 비어있는 생성자를 생성하여 응용 프로그램의 시작 부분에서 호출하거나 web.xml 내에서 시작하도록 할 수 있습니다.이 경우 웹 응용 프로그램을 서블릿 호출과 함께 사용하고 있습니다.

프로그램 시작시에 최대 절전 모드를 시작한다는 것을 프로그램에 알리지 않으면 SessionFactory에 대해 알려 주거나 필요할 때까지 최대 절전 모드를 만들지 않습니다.

내가 알 수있는 올바른 구문을 모두 사용했습니다. 프로그램 시작 부분에 다른 프로그램이 먼저 호출되도록하십시오.

Hibernate.org는 호출 할 빈 생성자를 추가하기 위해 수정할 수있는 HibernateUtil.class의 생성 예를 가지고 있습니다.

응용 프로그램 시작시 Hibernate를 시작하는 데 도움이되기를 바랍니다.

+0

OK 프로그램 시작시 Configuration.buildSessionFactory()를 호출했는데 제대로 작동합니다. 감사. – pacoverflow

+0

문제가없는 사람입니다! 다음은 유용한 링크입니다. 첫 번째 것은 Hibernate.org를위한 Hibernate.org 튜토리얼이다. 두 번째로 주석이 달린 클래스와 주석이 달린 세션 팩토리가있는 훌륭한 youtube 시리즈입니다. (당신을위한 약간의 여분 숙제) 그것이 나의 것 인 것처럼 그것은 당신의 두뇌에 끼워 넣을 것입니다. :) [link] (http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/) [link] (http://www.youtube.com/playlist?list=PL4AFF701184976B25) – RedRumming

3

hibernate cfg 파일에 below 특성을 추가하여 최대 절전 세션 팩토리 작성 중에 테이블이 자동으로 작성되도록하십시오.

+0

제 질문에 대한 편집을 참조하십시오. 감사. – pacoverflow

관련 문제