Java 如何将Hibernate Blob转换回原始文件
我正在使用hibernate在数据库中存储压缩文件,我已经用hibernate.createBlobinput流创建了Blob文件 现在我想反转这个过程并将Blob转换为文件,这样我就可以用Zip4j打开它了 我到底该怎么做? 我试着这么做,但总是有例外Java 如何将Hibernate Blob转换回原始文件,java,hibernate,Java,Hibernate,我正在使用hibernate在数据库中存储压缩文件,我已经用hibernate.createBlobinput流创建了Blob文件 现在我想反转这个过程并将Blob转换为文件,这样我就可以用Zip4j打开它了 我到底该怎么做? 我试着这么做,但总是有例外 谢谢。您可以在c语言中使用这个示例解决方案,代码应该相对类似 我知道这不是一个理想的答案,但这是一个很好的起点。我找到了解决问题的办法。 我用来将blob转换为文件的方式是可以的。发生异常是因为hibernate自身问题,您可以称之为 为了防止
谢谢。您可以在c语言中使用这个示例解决方案,代码应该相对类似
我知道这不是一个理想的答案,但这是一个很好的起点。我找到了解决问题的办法。 我用来将blob转换为文件的方式是可以的。发生异常是因为hibernate自身问题,您可以称之为 为了防止异常发生,我需要在保存后进行刷新
session.refresh(blog);
就是这样。这个概念理解得很好,这是一个java/Hibernate技术问题。谢谢你
2013-07-03 18:38:35,482 [DEBUG] [HibernateTransactionManager,doBegin(),569] - Exposing
Hibernate transaction as JDBC transaction [com.mchange.v2.c3p0.impl.NewProxyConnection@69875a82]
java.sql.SQLException: could not reset reader
at org.hibernate.lob.BlobImpl.getBinaryStream(BlobImpl.java:106)
at org.hibernate.lob.SerializableBlob.getBinaryStream(SerializableBlob.java:62)
at com.gleeb.backbonetemplates.services.LivePreviewService.prepareDesignForLivePreview(LivePreviewService.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
session.refresh(blog);