如何将 java bean 对象存储为 DB 列中的 clob(使用 Hibernate)

how to store java bean object as a clob in DB column(using Hibernate)

我的 Java bean 如下所示 public class AuditRptDTO {

private Date timestamp;
private String userId;
private String stName;
private String userType;
private String code;
private Clob oldRecord;
private Clob newRecord;
private String serverIp;

} 在这里代替 oldRecord 和 newRecord 我需要保存另一个 bean 对象。 我如何使用 XML 映射在休眠中实现此目的。

一个简单的方法是:

序列化您的对象:

ByteArrayOutputStream bos = new ByteArrayOutputStream() ;
ObjectOutput out  = new ObjectOutputStream(bos) ;
out.writeObject(object);
out.close();

byte[] dataArray = bos.toByteArray();

Base 64 编码数据得到一个字符串。

String dataString = Base64.encodeBase64String(dataArray);

然后只需将 String 转换为 Clob 接口的一个实例,您可以创建自己的或使用现有的实例。

Clob clobData = SerialClob(dataString.toCharArray());

可能有更简单的方法来实例化您的 Clob 对象,但您肯定需要先序列化您的对象。我会留给你看看你是否可以改进这个。