Programming/Java
JAVA17 - JPA이용시 제약조건 해결법 "org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint already exists;"
개발자 쓔쓔
2023. 5. 23. 16:42
반응형
원인을 발견하게 된 계기
Entity에 "Inheritance" 어노테이션을 추가했고, "DiscriminatiorColumn"을 추가했을 때
자동으로 생겨지는 "DTYPE"칼럼이 생기지 않으면서 insert가 되지 않은 문제를 발생했다.
해당 부분에 대한 에러를 보면 아래와 같았다,
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FKL7WSNY760HJY6X19KQNDUASBM" already exists; SQL statement:
alter table Member
add constraint FKl7wsny760hjy6x19kqnduasbm
내용을 대략적으로 해석해 보자라면, 테이블에 제약조건을 추가할 때 이미 존재해서 진행될 수 없는 문제라고 한다.
해당 부분을 찾아보니 hibernate의 문제임을 확인했고 해당 버전을 바꿔주니 해결되었다.
해결법
Maven인 경우 "version"에 대하여 "5.4.14.Final"로 변경 후 재시작을 해주면 된다.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.4.14.Final</version>
</dependency>
Gradle인 경우, "build.gradle"파일에 아래의 코드를 추가하여 재시작하면 된다.
ext["hibernate.version"] = "5.4.14.Final"
728x90
반응형