Pulog

Spring Data JPAでTextタイプの値を取り扱う

長文なテキストデータをJPAで管理したい場合、どのようなテーブルの指定をすればよいのか、ちょっと答えを見つけるのに時間がかかったので備忘録兼共有として投稿。

単純に調べ方が悪かっただけだと思うが、一応。

@Lob アノテーションを用いる

@Entity
@Data
public class Content {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @Lob
    private String content;
}

Lob (javax.persistence-api 2.2 API)

@Column(columnDefinition = "TEXT") を用いる

@Entity
@Data
public class Content {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @Column(columnDefinition = "TEXT")
    private String content;
}

既に @Column アノテーションを付与しているのであれば、 @Lob アノテーションなんか付与せず、 @Column アノテーションの columnDefinition で済ませるのがスマートかと思います。