Java 数据对象在没有持久存储到业务表时,可能需要临时存储。原因如下:有些持续时间长的任务需要数据对象,但是该任务没完成时数据对象不能持久存储;当服务在持久任务执行期间重启后恢复任务时需要数据对象。这样的情况下,数据对象的临时存储是有意义的。
java对象存储到Blob
ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo; try { oo = new ObjectOutputStream(bo); oo.writeObject(libraryEtextJn); } catch (IOException e) { e.printStackTrace(); } Blob blob= Hibernate.createBlob(bo.toByteArray()); |
从Blob读取Java对象
ObjectInputStream is = new ObjectInputStream(new BufferedInputStream(blob.getBinaryStream()));
LibraryEtext libraryEtext = (LibraryEtext)is.readObject();
Hibernate配置Blob字段
<property name="liberary" column="LIBERARY" type="blob" />