인프런 커뮤니티 질문&답변

정우진님의 프로필 이미지
정우진

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

Hello JPA - 애플리케이션 개발

hibernate.hbm2ddl.auto = create 했지만 FK 때문에 DROP에 실패

작성

·

479

2

안녕하세요,

hibernate.hbm2ddl.auto의 값을 create로 두고 실습을 진행하고 있는데

첫 번째 질문은 1. create로 설정하고 수업을 따라하는 게 맞는지?

두 번 째 질문은

처음 프로그램이 실행할 때 다음과 같은 에러메시지를 보여주면서 테이블 drop에 계속 해서 실패하는데 이게 기대하는 결과가 맞는지, 아니라면 어떻게 해결할 수 있는지 입니다.

에러메시지 :

 WARN: GenerationTarget encountered exception accepting command : Error executing DDL "
    drop table Category if exists" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "
    drop table Category if exists" via JDBC Statement
	at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
	at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString(SchemaDropperImpl.java:375)
	at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings(SchemaDropperImpl.java:359)
	at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata(SchemaDropperImpl.java:241)
	at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop(SchemaDropperImpl.java:154)
	at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:126)
	at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:112)
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:144)
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)
	at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310)
	at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939)
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
	at jpabook.jpashop.JpaMain.main(JpaMain.java:16)
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "CATEGORY" because "FKJIP0OR3VEMIXCCL6VX0KLUJ03" depends on it; SQL statement:

새로운 Entity를 추가하거나 Entity에 필드를 추가하는 실습을 할 때마다 일일히 직접 h2 콘솔에서 테이블을 몽땅 drop 해주지 않으면

변경 사항을 확인할 수가 없는 상황입니다.

감사합니다.

답변 1

1

정우진님의 프로필 이미지
정우진
질문자

h2 버전 문제였습니다 1.4.199 버전으로 교체하니 문제가 해결되었습니다

참고한 질문 : https://www.inflearn.com/questions/17219

김영한님의 프로필 이미지
김영한
지식공유자

우진님 스스로 잘 해결하셨습니다^^

정우진님의 프로필 이미지
정우진

작성한 질문수

질문하기