본문 바로가기
Etc/Bug Tracking

[JPA] Data too long for column

by happy coding! 2022. 7. 26.
반응형

Data to long for column

  • 원인: 입력되는 데이터가 컬럼의 length보다 커서 발생하는 오류
  • 해결 방법: 컬럼의 length를 늘려주거나 입력되는 데이터의 길이를 줄여준다.

해결 방법

  • JPA를 통해 아래와 같은 엔티티로 데이터베이스에 테이블을 생성한다고 가정하자.
@Entity
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;

    Long userId;
    Grade grade;
    String description;
}
  • 코드의 description 변수처럼 String 타입으로 설정하면 기본적으로 255바이트 varchar 타입 컬럼으로 생성된다.
  • 하지만 기본으로 설정된 225바이트의 길이가 넘는 문자열을 입력하면 "Data too long for column" 오류가 발생한다.
  • 오류를 해결하려면 컬럼의 길이를 늘려준다.
  • 생성된 컬럼을 삭제하고 엔티티의 String 타입 변수 위에 컬럼의 길이를 설정하는 애노테이션을 붙인다.
  • @Column(length = 원하는 길이)
@Entity
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;

    Long userId;
    Grade grade;
    @Column(length = 1000)
    String description;
}
  • 그리고 JPA를 재기동하면 컬럼의 길이가 설정한대로 늘어나며 문제가 해결된다.
반응형

댓글