首页 > 解决方案 > 无法使用 Hibernate 从 PostgreSQL 获取 BLOB 字段

问题描述

我的 PostGreSQL 中有一个 BLOB 字段,我正在尝试使用休眠获取该字段。以下是相同的快照:

桌子

在此处输入图像描述

现在我想获取该字段并将其显示给用户。为此,我使用了一个byte[]数组。下面是我的代码:

实体.java

@Lob
@Column(name = "MAIL_BODY",length=100000)
public Byte[] getMailBody() {
    return mailBody;
}
public void setMailBody(Byte[] mailBody) {
    this.mailBody = mailBody;
} 

服务.java

Session session=comTtEflMailDataServiceDao.getCurrentSessionPortal();
Criterion criterion=Restrictions.eq("headerSeqNo", "40011532018");
comTtEflMailData=comTtEflMailDataServiceDao.getListByFilter(criterion, session);

DAO.java

criteria = currSession.createCriteria(getPersistentClass());
System.out.println(3);
criteria.add(criterion);
System.out.println(2);
resultset = (T) criteria.uniqueResult();

但是,当我运行代码时,出现以下错误:

org.hibernate.exception.GenericJDBCException: could not execute query 
Caused by: java.sql.SQLException: Numeric Overflow

我该如何解决这个问题?

标签: javapostgresqlhibernateblobhibernate-criteria

解决方案


推荐阅读