我的Java bean如下所示 公共类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映射在hibernate中实现这一点。
答案 0 :(得分:1)
一个简单的方法是:
序列化您的对象:
Local stringvar array MYARRAY:= Split("ABZ SYP 10MLS-5-40-1-b.d-5-10-400", " ");
Local Strngvar array AfterSplit1:=Split(MYARRAY[3], ".");;
Local Strngvar array AfterSplit2:=Split(AfterSplit1[1], "-");
Local Strngvar array AfterSplit3:=Split(AfterSplit1[2], "-");
//output:
MYARRAY[1]& ChrW(13) & //ABC
MYARRAY[2]& ChrW(13) & //SYP
AfterSplit2[1]& ChrW(13) & //10MLS
AfterSplit2[2]& ChrW(13) & //5
AfterSplit2[3]& ChrW(13) & //40
AfterSplit2[3]& ChrW(13) & //1
AfterSplit2[4]& ChrW(13) & //b
AfterSplit3[1]& ChrW(13) & //d
AfterSplit3[2]& ChrW(13) & //5
AfterSplit3[3]& ChrW(13) & //10
AfterSplit3[4] //400
Base 64对数据进行编码以获得字符串。
ByteArrayOutputStream bos = new ByteArrayOutputStream() ;
ObjectOutput out = new ObjectOutputStream(bos) ;
out.writeObject(object);
out.close();
byte[] dataArray = bos.toByteArray();
然后所需要的只是将String转换为Clob接口的实例,您可以创建自己的或使用现有的。
String dataString = Base64.encodeBase64String(dataArray);
可能有一种更简单的方法来实例化您的Clob对象,但您肯定需要首先序列化您的对象。我会留给你看看你是否能改进这一点。