我有网络服务,通过块接收100 Mb视频文件
public void addFileChunk(Long fileId, byte[] buffer)
如何使用hibernate将此文件存储在Postgresql数据库中?
使用常规JDBC非常简单。我会在我的Web服务方法中使用以下代码:
LargeObject largeObject = largeObjectManager.Open(fileId, LargeObjectManager.READWRITE);
int size = largeObject.Size();
largeObject.Seek(size);
largeObject.Write(buffer);
largeObject.Close();
如何使用Hibernate实现相同的功能?并按块存储此文件?
将每个文件块存储在单独的行中,因为bytea似乎不是那么聪明的主意。皮斯建议。
答案 0 :(得分:1)
现在建议将100MB文件存储在数据库中。我会将它们存储在文件系统中,但考虑到事务处于活动状态,使用Servlet似乎是合理的。
答案 1 :(得分:0)
请参阅http://in.relation.to/Bloggers/PostgreSQLAndBLOBs
是的byteas会很糟糕。 Hibernate有一种方法可以继续使用大型对象,并且可以保留流式界面。