紧接this example之后,我正在上传一个小文件,并尝试将其存储到postgresql bytea列中。
这是错误(前两个输出是在尝试执行INSERT之前输出Bean属性的日志记录语句:
这是在Bean中定义字段的方式:
private byte[] letterTemplateText;
@Lob
@Column(name = "letter_template_text")
@Basic(fetch = FetchType.LAZY)
public byte[] getLetterTemplateText() {
return this.letterTemplateText;
}
public void setLetterTemplateText(byte[] letterTemplateText) {
this.letterTemplateText = letterTemplateText;
}
最佳答案
我怀疑Hibernate尝试在PostgreSQL中使用“大对象”方法,该方法涉及将OID“句柄”存储到表中的文件。一些示例阅读:http://virgo47.wordpress.com/2008/06/13/jpa-postgresql-and-bytea-vs-oid-type/
如果您只想使用bytea列(并且在SQL端使用它要简单得多),请使用BinaryType映射该列。另请:proper hibernate annotation for byte[]