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를 재기동하면 컬럼의 길이가 설정한대로 늘어나며 문제가 해결된다.