紧跟在this example上,我正在上传一个小文件并尝试存储到postgresql bytea列中。缝文件上传到postgres bytea列“列是bytea但表达式是bigint”
下面是错误(第一两个输出记录语句的INSERT之前输出bean的属性尝试:
SAGE 1 -- action.registration.LetterTemplateHome - content type: text/xml
SAGE 1 -- action.registration.LetterTemplateHome - letterTemplateText: [[email protected]
SAGE 1 -- action.registration.LetterTemplateHome - contents as String: xml version="1.0" encoding="UTF-8" standalone="yes" .... etc
SAGE 1 -- org.hibernate.util.JDBCExceptionReporter - Batch entry 0 insert into letter_template (content_type, file_name_template, fileSize, letter_template_name, letter_template_text, letter_template_id) values ('text/xml', 'letterDate.xml', '0', 'yu', '37078', '202') was aborted. Call getNextException to see the cause.
SAGE 1 -- org.hibernate.util.JDBCExceptionReporter - ERROR: column "letter_template_text" is of type bytea but expression is of type bigint Hint: You will need to rewrite or cast the expression. Position: 162
这里是如何该字段在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;
}
感谢您的评论。只要将上传的文件存储在文件系统中,我们的环境就会被锁定。我必须有一个非常好的理由来解决方案。另外,我们有负载均衡器,它们很好地处理数据库更改。我不知道他们将如何处理文件系统文件。有问题的数据量非常小,不会影响性能。而且,我认为在数据库和文件系统之间建立这种联系确实会非常脆弱。 – mcgyver5 2012-02-02 16:42:40