====== @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]]