嗨,我想在休眠状态下从输入流创建一个 blob,但我不知道流的长度。
Hibernate.getLobCreator(sessionFactory.getCurrentSession()).createBlob(stream, length)
如何在不知道流长度的情况下创建 blob?
编辑1
在较旧的休眠版本中,这是可能的
http://viralpatel.net/blogs/tutorial-save-get-blob-object-spring-3-mvc-hibernate/
Blob blob = Hibernate.createBlob(file.getInputStream());
编辑2
好的,但它有一个错误的实现
return new SerializableBlob(new BlobImpl(stream, stream.available()));
stream.available 不是真正的大小
编辑 3
我试过了
session.doWork(new Work() {
@Override
public void execute(Connection conn) throws SQLException {
LargeObjectManager lobj = ((org.postgresql.PGConnection) conn).getLargeObjectAPI();
但 conn 只是来自 c3p0 的 NewProxyConnection。