我们在应用程序中使用 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 实现这一点?