紧接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[]

09-16 04:22