long类型的值不正确:-Postgresql、Hibernate、Spring

我想使用SpringMVC和Hibernate在PostgresQL中存储一个实体(字符串+图像)
这是我的桌子。该图像应为oid类型

创建表格文档
(
名称字符变化(200),
序列号不为空,
内容oid,//应该是图像
约束文档\u pkey主键(id)
)
与(
OID=错误
);

这是我要存储的实体

@实体
@表(name=“document”)
公共类文档{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”)
私人长id;
@列(name=“name”)
私有字符串名称;
@列(name=“content”)
私有Blob内容;//这是图像
//接受者-接受者

您可以看到变量“name”是一个字符串,不长。但当我提交带有非数字值的表单时,它会抛出org.postgresql.util.psqleexception:Long:x类型的错误值

表格如下:

<form:form-method=“post”action=“save.html”commandName=“document”enctype=“multipart/form-data”>
<form:errors path=“*”cssClass=“error”/>
<表格>
<tr>
<td><表格:label path=“name”>name</form:label></td>
<td>lt;表单:输入路径=“名称”/>lt;/td>
</tr>
<tr>
<td>lt;格式:label path=“content”文档</form:label>lt;/td>
<td><input type=“file”name=“file”id=“file”></input></td>
</tr>
<tr>
<td colspan=“2”>
<输入type=“提交”value=“添加文档”/>
</td>
</tr>
</table>
</form:form>

如果我输入一个数值并提交,好的。但任何非数值都会触发上述异常…我读到这可能是由于我没有正确使用OID造成的,但我不知道该如何消除此异常。事实上,我也不理解例外的名称。它说“typelong的值不正确”。但是谁想要type long呢?变量“name”是type String!!!!

最后,这里是控制器

@RequestMapping(value=“/save”,method=RequestMethod.POST)
公共字符串保存(@modeldattribute(“文档”)文档、@RequestParam(“文件”)多部分文件){
试一试{
Blob Blob=Hibernate.createBlob(file.getInputStream());
文件设置内容(blob);
documentDao.save(文档);
}捕获(例外e){
e、 printStackTrace();
}
返回“重定向:/index.html”;
}

任何建议都是值得的

我有一个类似的问题,但它与数据库中ID字段的顺序无关

经过一番搜索,我发现这一点指向这样一个事实:除非另有规定,否则Hibernate中的LOB被视为OID

这意味着Hibernate将尝试将Lob放入长a中,从而产生异常PSQLException:Long类型的坏值

指定Lob是要作为文本处理的对象的方法是通过注释字段

@Lob
@类型(Type=“org.hibernate.Type.TextType”)

发表评论