我需要将图像存储在数据库中,因此我决定采用表格设计来适应它。表格设计是
FILE_ID INT,
FILE_NAME VARCHAR(200),
FILE_CONTENTS BLOB.
我正在使用Oracle数据库。我认为Oracle支持BLOB高达2 GB的存储空间。我正在使用hibernate作为JPA提供程序。模型类使用Hibernate注释进行注释,其中blob字段使用byte [](字节数组类型)。如果图像大小只有几兆字节,那么休眠可以将内容带入内存。如果内容的大小超过了jvm的大小,那么hibernate如何将内容带入内存呢?
答案 0 :(得分:2)
不要将byte
数组用于这些目的。使用sql Blob
类型,并使用streams
。
答案 1 :(得分:1)
Hibernate无法将内容拉到内存中,因为没有足够的内存来拉取内存。最终会出现OutOfMemoryException。