JPA ddl-auto: validate

SionBackEnd·2022년 10월 29일
0

Spring(봄)

목록 보기
15/22

ddl-auto를 적용시키렬고 하는데 자꾸 에러가 떠가지고 너무 화가 났다.

mysql에 적용을 시키려고 하는데 컴파일이 안되는것이다.

나와같은 상황이라면 먼저 이걸보자.

  • create: 기존테이블 삭제 후 다시 생성 (DROP + CREATE)
  • create-drop: create와 같으나 종료시점에 테이블 DROP
  • update: 변경분만 반영(운영DB에서는 사용하면 안됨)
  • validate: 엔티티와 테이블이 정상 매핑되었는지만 확인
  • none: 사용하지 않음(사실상 없는 값이지만 관례상 none이라고 한다.)

위에 말한것처럼 create는 기존테이블을 삭체 후 다시 생성이다. 하지만, 나는 개발 도중 중간에 validate로 변경하여 데이터를 보존하려고 했는데 이상하게 에러가 계속났다.
문제는 현제 나의 데이터 베이스 테이블과 mysql데이터 베이스의 테이블이 맞지 않기 때문에 에러를 내뱉은 것이였다. 문제는 내가 멍청하게 mysql에 테이블을 업데이트 안하고 validate를 사용한게 잘못이였다.

validate는 엔티티와 테이블이 정상 매핑이 안되면, 컴파일부터 안된다. 아니 안됐다.
그래서 나의 엔티티가 현재 연결된 mssql 데이터베이스 테이블과 다르다면, create로 생성을 해두고 validate로 변경하면 될것같다..

아쉬운점은 update를 테스트해보지 못했던게 아쉽다. 아마 update가 변경부분만 반영해주는거라 될것같지만, 그건 다음에 나에게 토스..

profile
많은 도움 얻어가시길 바랍니다!

0개의 댓글