0
我使用eclipselink JPA創建應用程序,我使用HistoryPlicy創建歷史數據。每一件事情都很好,但我面臨將blob數據複製到歷史記錄表的問題。eclipselink historypolicy blob字段
@Entity
@Customizer(AttachmentHistoryPolicy.class)
@Table(name = "STAFF_ATTACHMENT", catalog = "", schema = "OIA")
public class Attachment implements Serializable {
@Id
private Long id;
@Basic(optional = false)
@NotNull
@Lob
@Column(name = "CONTENTS")
private byte[] contents;
// getters and setters
}
public class AttachmentHistoryPolicy implements DescriptorCustomizer {
@Override
public void customize(ClassDescriptor cd) throws Exception {
HistoryPolicy policy = new HistoryPolicy();
policy.addHistoryTableName("HIST_STAFF_ATTACHMENT");
policy.addStartFieldName("HIST_START_DATE");
policy.addEndFieldName("HIST_END_DATE");
policy.setShouldHandleWrites(true);
//policy.useDatabaseTime();
cd.setHistoryPolicy(policy);
}
}
該行插入歷史表中,但與空blob !!!
有沒有辦法處理這個使用eclipselink HistoryPolicy?
編輯:
以下是通過的EclipseLink
BEGIN INSERT INTO OIA.STAFF_ATTACHMENT (ID, CONTENT_TYPE, CONTENTS, FILE_NAME, FILE_SIZE, OWNER, STAFF_MEMBER) VALUES (?, ?, ?, ?, ?, ?, ?) RETURNING CONTENTS INTO ?; END;
SELECT CONTENTS FROM OIA.STAFF_ATTACHMENT WHERE (ID = ?) FOR UPDATE
INSERT INTO HIST_STAFF_ATTACHMENT (ID, CONTENT_TYPE, CONTENTS, FILE_NAME, FILE_SIZE, OWNER, STAFF_MEMBER, HIST_START_DATE) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
SELECT CONTENTS FROM OIA.STAFF_ATTACHMENT WHERE (ID = ?) FOR UPDATE
bind => [1 parameter bound]
音符生成的SQL語句絲束用於更新選擇內容相同語句(該兩個語句是用於STAFF_ATTACHMENT表)
但我該如何設置平臺? – 2012-03-20 10:51:51
我想通了: 它工作正常:)非常感謝詹姆斯 –
2012-03-20 11:22:52