반응형
간혹 가다가 Entity String Type의 속성 길이를 디폴트보다 길게 하고 싶을 때 다음과 같이 하는 경우가 있을 것이다.
Document entity의 content의 길이가 늘어나는 것을 대비해, @Column 어노테이션의 length = 50000으로 하여 길이를 늘리고 실행을 해보면 다음과 같은 에러가 발생한다
engine=InnoDB" via JDBC [Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs]
즉, 위 에러는 MySQL에서 varchar 타입의 길이를 너무 크게 설정하면 "Row size too large" 오류를 발생시킨다.
이 오류는 MySQL의 InnoDB 테이블에서 행 크기가 65535바이트를 초과할 때 발생하는데, varchar(10000)은 너무 큰 크기이므로 다음과 같이 해결할 수 있다.
해결
해당 컬럼의 타입을 TEXT 타입으로 지정해주었다.
TEXT 타입은 varchar와 달리 더 큰 데이터를 저장할 수 있고, InnoDB의 행 크기 제한에 영향을 덜 미친다.
JPA 엔티티에서 TEXT Type으로 변경해주면, @Column 어노테이션을 통해 length를 지정하면 안된다!
참고
https://velog.io/@rhqjatn2398/Access-Control-Expose-Headers-CORS-safelisted-response-header
Access-Control-Expose-Headers & CORS-safelisted response header
Spring Boot 서버에서 응답 헤더에 추가적인(사용자 정의) 헤더 값을 설정하였다. 그런데 아래 이미지처럼 브라우저의 개발자 도구에서는 추가한 헤더를 확인할 수 있는데, 프론트(Vue.js)에서는 추
velog.io
반응형
'Back-end > Spring' 카테고리의 다른 글
[Spring] WebClient를 사용한 외부 API 통신 (0) | 2024.06.16 |
---|---|
[Spring] Swagger 사용 및 JWT과 https 적용해보기 (2) | 2024.06.05 |
[Spring] data.sql을 사용하여 서버 실행 시 데이터 삽입하기 (1) | 2024.05.28 |
[Spring] CORS-safelisted response header 문제 해결하기 (0) | 2024.05.26 |
[Spring] JPA 동적 네이티브 쿼리, 제대로 알고 사용하자 (0) | 2024.05.22 |