SQLSyntaxErrorException - Data too long for column '*' at row 1

minjjai·2022년 11월 12일
0

개요

프로젝트 진행 중, Post(글) CRUD 관련 개발을 하다가 아래와 같은 오류가 발생했다.

파라미터 값으로 넘어온 content의 값이 너무 길다는 것이다.
그래서 내가 무엇을 빠뜨렸을까 생각을 해보았다.

문제 & 실수

아래는 Post 엔티티이다.

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Post {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @CreatedDate
    private LocalDateTime createDate;
    private LocalDateTime updateDate;

    private String subject;

    private String content;

    private String contentHtml;

    @ManyToOne
    private Member member;
    @OneToMany(mappedBy = "post", cascade = CascadeType.REMOVE)
    private List<HashTag> hashTagList;

subject는 글의 제목이라 일반 String타입으로도 충분할 수 있지만, 내용인 content는 일반적인 String타입의 범위를 벗어날 수도 있다.

해결

content와 같이 긴 문자열을 저장할 경우에는

@Column(columnDefinition = "TEXT")

이와 같은 어노테이션을 추가해주면 된다.
해당 컬럼 값의 범위를 TEXT, 즉 제한 없는 문자열로 만들 수 있다.

원래 알고 있었지만, 빠른 개발을 진행하다보니 빼먹은 것 같다.
다음부터는 당황하지 않도록 꼭 엔티티를 신경써서 구성해보자.

profile
BackEnd Developer

0개의 댓글