如何将 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 对象,但您肯定需要先序列化您的对象。我会留给你看看你是否可以改进这个。
我的 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 对象,但您肯定需要先序列化您的对象。我会留给你看看你是否可以改进这个。