====== @Lob ======
* [[java:jpa|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'' 를 사용한다고 해도 실제 데이터만큼의 용량만 차지한다.
* [[https://docs.jboss.org/hibernate/orm/5.4/javadocs/org/hibernate/type/TextType.html|TextType]]
* 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;
===== 참조 =====
* [[https://www.baeldung.com/jpa-annotation-postgresql-text-type|JPA Annotation for the PostgreSQL TEXT Type | Baeldung]]
* [[https://jpa-buddy.com/blog/how-to-store-text-in-postgresql-tips-tricks-and-traps/|How to store text in PostgreSQL: tips, tricks, and traps]]