アプリケーションでJSON文字列を使用して、多くの構成データを保存しています。これを BLOB としてデータベースに保存します。JSON 文字列はバイナリ表現 ( BSON ) に変換され、これを保存します。
実在物:
@Entity
@Table(name="TBL_CONFIG")
public class ConfigEntity {
[...]
@Column(name = "CONFIG")
@JSON
private String config;
[...]
}
グローバル エンティティ リスナー:
public class JsonBinaryConversionListener {
@PrePersist
public void process() {
// Check @JSON fields and for every field
[...]
field.set(objectConversion.toBson(field.get()));
[...]
// The field is String, the conversion gives us a byte array
}
}
列 CONFIG は BLOB として設定されます。値を手動で変更する必要があるため、 @Lob アノテーションのみを使用すると機能しません。
JPAを通じてこれを実現する方法はありますか?