• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

<property name="hibernate.hbm2ddl.auto" value="create" /> 로 설정해도 main 재시작시 오류가 뜹니다.

20.04.16 10:59 작성 조회수 292

7

강사님 강의 잘 듣고 있습니다.

제목에 적힌대로 ddl.auto 값을 create로 설정했는데도 매번 main을 실행할 때 "CommandAcceptanceException" 이 발생합니다. 

로그를 살펴보면 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "ACCOUNT" because "FKNNYFLHE0WA6DSBPQ4OI831LOT" depends on it; SQL statement:

이런식으로 나오는데요, 한마디로 ddl전략이 create시 선 테이블 drop, 후 create를 하는데 이 drop의 과정에서 pk fk 관계가 얽혀서 나중에 drop 해야만 하는게 있는거 같은데요, 맞나요?

이럴경우도 깔끔하게 create 할 수는 없을까요?

감사합니다.

답변 4

·

답변을 작성해보세요.

8

메이븐은 하이버네이트 버전항목에 5.4.14.Final로 설정하면 됩니다^^!

<dependency>

    <groupId>org.hibernate</groupId>

    <artifactId>hibernate-entitymanager</artifactId>

    <version>5.4.14.Final</version>

</dependency>

3

h2 데이터베이스를 1.4.200으로 유지하면서 문제를 해결할 수 있는 하이버네이트 패치가 드디어 나왔습니다.

build.gradle 파일에 다음 한줄을 추가해주시면 됩니다.

ext["hibernate.version"] = "5.4.14.Final"

감사합니다^^

1

윽이럴뚜가님의 프로필

윽이럴뚜가

2020.09.19

오우굿! 땡큐요!

1

https://www.inflearn.com/course/ORM-JPA-Basic/lecture/21707

의 제일 첫번째 질문하신분이 자문자답 해주셨었네요! 이대로 하니 잘 됩니다.