こんにちは、入力ストリームから休止状態でブロブを作成したいのですが、ストリームの長さがわかりません。
Hibernate.getLobCreator(sessionFactory.getCurrentSession()).createBlob(stream, length)
ストリームの長さを知らずにブロブをクレートするにはどうすればよいですか?
編集1
古い休止状態のバージョンでは可能でした
http://viralpatel.net/blogs/tutorial-save-get-blob-object-spring-3-mvc-hibernate/
Blob blob = Hibernate.createBlob(file.getInputStream());
EDIT2
わかりましたが、バグのある実装がありました
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 です。