본문 바로가기

intellij +springboot/오류정리

[mediumtext (Types#LONGVARCHAR)], but expecting [varchar(255) (Types#VARCHAR)]

le to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [column_name] in table [TableName]; found [mediumtext (Types#LONGVARCHAR)], but expecting [varchar(255) (Types#VARCHAR)]

 

 

대용량 텍스트를 추가해야돼서 varcahr 에서 mediumtext  로 칼람 데이터 타입을 변경했더니 생긴 에러

찾아보니 jpa 에서는 mediumtext 같이 긴 문자열을 쓰려면 따로 선헌해줘야 하는게 있다고 한다.

 

해당하는 컬럼에 아래 어노테이션 중 내가 만든컬럼에 맞는걸 하나 추가해준다.
@Column(name="columnName",columnDefinition = "TEXT")

@Column(name="columnName",columnDefinition = "MEDIUMTEXT:")
@Column(name="columnName",columnDefinition = "LONGTEXT")

 

참고 

 

JPA 어노테이션을 이용해 TEXT 데이터 타입을 사용하는 경우 여러가지 방법이 있다. @Lob을 사용하는 방법도 있고 columndefinition을 TEXT로 주는 방법도 있다. 정답이 있다기보다는 용도와 데이터의 용량에 따라 적절한 선택을 하는 것이 필요하다.

  • VARCHAR: 65,535 bytes (~64Kb, 21,844 UTF-8 encoded characters)
  • TEXT: 65,535 bytes (~64Kb, 21,844 UTF-8 encoded characters)
  • MEDIUMTEXT: 16,777,215 bytes (~16Mb, ~5.5 million UTF-8 encoded characters)
  • LONGTEXT: 4,294,967,295 bytes (~4GB, ~1.4 billion UTF-8 encoded characters).

 

 

출처 - http://chomman.github.io/blog/java/mysql/jpa/jpa-text-date-length/