728x90
반응형
목차
문제 사항
JPA + MySQL 환경에서 작업을 진행하는 도중, 다음과 같은 에러가 발생했다.
Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed;
nested exception is javax.persistence.PersistenceException:
[PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing column [created_at] in table [board]
board 테이블 안에 created_at 컬럼이 없어서 발생한다는데, Entity와 테이블 모두 정상적으로 작성되어있었다.
그런데 왜 이게 발생하느냐...
원인 분석
먼저, application.yml 파일을 열어서 hibernate 관련 이슈인가 확인해봤다.
hibernate의 ddl-auto의 validate 옵션이 있는데
이는 서버를 기동할 때 사용자가 세팅한 entity와 실제 테이블이 유효하는지 검증하는 작업이다.
이 때, 대문자로 테이블과 컬럼을 탐색하기 때문에 MySQL엔 소문자로 저장되어있어도 못찾는다고 뜨는 것.
해결 방법
MySQL 설정 바꾸기
my.cnf 파일을 바꿔야 한다.
나는 해당 파일이 없어서 애를먹었는데.. 아무리 찾아봐도 없고 없으면 복사해서 쓰라는 파일조차도 없어서..
결국 DB를 지우고 설치할 때 해당 옵션을 줘서 설치했다..;
lower_case_table_names=1;
my.cnf 파일이 있으신 분들은 저 설정값만 바꿔주면 된다고 하니 참고하도록 하자..
바꾸는 방법은 다른 블로그들이 훨씬 잘 정리되어있다.
참고
구독 및 하트는 정보 포스팅 제작에 큰 힘이됩니다♡
728x90
반응형
'Backend > DB' 카테고리의 다른 글
[DB] 조회 시 트랜잭션을 걸어야 하는 이유? (Feat. 트랜잭션 격리수준) (2) | 2024.06.26 |
---|---|
[Oracle] 오라클 시퀀스가 동시성 이슈를 보장해주는 이유 (2) | 2024.06.11 |
[ORACLE] TRUNC 함수 사용법 (3) | 2021.01.21 |
[Oracle] ORA-01790: expression must have same datatype as corresponding expression (0) | 2020.12.07 |
[Oracle] ORA-02437: cannot validate (~~) - primary key violated (0) | 2020.10.06 |