사용자 도구

사이트 도구


java:jpa:lob

@Lob

  • JPA @Lob
  • CLob : 텍스트
  • BLob : 바이너리

MySQL

text 컬럼

  • text 타입의 컬럼은 @Lob 매핑할 수 없다.
// Hibernate 5.x 안해도 작동은 하는데 ddl_auto=validate 를 통과시키려면 해야함.
@Type(type = "org.hibernate.type.TextType")
@Column(name="content", columnDefinition = "text")
private String content;
  • MySQL 은 text 타입보다는 longtext 타입을 권장한다. text 를 사용할경우 데이터 용량 부족으로 중간에 잘려들어갈 수 있기 때문이다. longtext 를 사용한다고 해도 실제 데이터만큼의 용량만 차지한다.
  • Hibernate 6 에서는 TextType 이 사라졌다. 그냥 column 의 length 를 올바로 지정해야한다.
@Column(name = "doc_txt", length = Length.LONG32)
private String docText;

longtext 컬럼

  • @Lob 을 사용할 수 있다.
@Lob
@Column(name="content", columnDefinition = "longtext")
private String content;

참조

java/jpa/lob.txt · 마지막으로 수정됨: 2023/06/09 10:15 저자 kwon37xi