有关Hibernate中PO对象Blob字段的注解
PO对象中使用Hibernate注解方式进行映射.Blob字段描述如下:
1.首先PO对象中属性名可指定为byte数组(byte[])
private byte [] templateData;
2.在Setter方法中进行注解方式如下:
@Lob @Basic(fetch = FetchType.LAZY) @Column(name = "TEMPLATE_DATA",columnDefinition="BLOB") public byte [] getTemplateData() { return this.templateData; }
有关Oracle中的Blob字段更新问题
先说下偶遇到的问题:
Oracle中我使用Blob字段来存一个Xml内容.新增一条记录正常,但是尝试用一条记录去更新已经存在的记录.
发现Blob中的字段中的内容并没有被更新掉.
网络上的一些朋友说原因如下:
假设Blob字段中已经存在的内容是100个字节,那么尝试用50字节的内容去更新,
那么得到的结果就是:前面50个字节被覆盖,而Blob仍然存在100个字节,其中后面50个字节是原先的后50个字节.
那么解决的方法如下:(证实可以通过)
先清空原Blob字段中的数据,再进行字节的写入.(与平常的更新操作会多了一步).
具体的更新方法如下:
UPDATE 表名 SET BLOB字段=EMPTY_BLOB() WHERE 条件.
然后再执行具体的更新SQL语句.