我正在尝试使用 JPA 将上传的文件保存到数据库。(对我来说)最“自然”的方式是将域对象定义为:
@Entity
class UploadFile {
...
public CommonsMultipartFile getFileData()
{
return fileData;
}
}
但这不起作用,因为没有这样的数据库映射类型。在网上搜索,我发现人们似乎适应了两种方法之一:
- 将字段定义为
java.sql.blob;
- 将字段定义为
byte[]
在@Controller
类中,传入的内容HttpServletRequest
被强制转换MultipartHttpServletRequest
为访问MultipartFile
并将其转换回流byte[]
。
然而,使用这个方案,我得到了令我困惑的“随机”结果:有时,我遇到“bean property not readable”错误,可能是 byte[] 字段上 getter 方法的返回类型不匹配。我仔细检查了我的 Bean 定义,并没有发现任何错误。
我想我的问题有两个方面:(1)知道为什么在这种情况下会发生此错误吗?(2)更重要的是,像这样处理上传文件的“推荐”方式是什么?
谢谢
奥利弗