JPAで@javax.persistence.Lob
アノテーションを使用する場合この注釈で注釈を付けることができるデータ型は何ですか?
@javax.persistence.Lob
は、注釈付きフィールドがデータベースでBLOB(バイナリデータ)として表されることを示します。
この注釈を使用して、Serializable
データ型に注釈を付けることができます。 JPAでは、永続化(取得)時に、フィールドのコンテンツは標準Javaシリアル化を使用してシリアル化(逆シリアル化)されます。
@Lob
の一般的な使用法は、エンティティ内のHashMap
フィールドに注釈を付けて、DB列にマッピングされないオブジェクトプロパティの一部を保存することです。これにより、マッピングされていないすべての値を、バイナリ表現の1つの列のDBに保存できます。もちろん、支払われる価格は、バイナリ形式で保存されているため、JPQL/SQLを使用して検索できないということです。
準拠: https://docs.Oracle.com/javaee/7/api/javax/persistence/Lob.html
@ Lob永続プロパティまたはフィールドを、データベースでサポートされるラージオブジェクトタイプのラージオブジェクトとして永続化することを指定します。
@ javax.persistence.Lobは、注釈付きフィールドがデータベース内でBLOB(バイナリデータ)として表されることを意味します。
データベースでは、バイナリデータだけでなく、文字ベースでもあると思います。 BLOBとCLOBを使用できたため。 Javaコードの例:
@Lob
@Column(name = "CHARS", columnDefinition = "CLOB")
private String chars;`
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "DATA", columnDefinition = "BLOB", nullable = false)
private byte[] data;