hibernate4写入Blob时报错

治哥 2013-05-19 10:08:10
报错信息:

org.apache.commons.dbcp.DelegatingPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V

代码如下:

int fileSize = 1024 * 1000;
Employee employee = employeeDao.get(Employee.class, employeeId);
EmployeeFace employeeFace = new EmployeeFace();
String faceId = UUID.randomUUID().toString().replace("-", "");
byte[] bytes = new byte[fileSize];
try {
FileInputStream stream = new FileInputStream(faceFile);
ByteArrayOutputStream out = new ByteArrayOutputStream(1000);
for (int n; (n = stream.read(bytes)) != -1;) {
out.write(bytes, 0, n);
}
stream.close();
out.close();
LobHelper lobHelper = employeeFaceDao.getCurrentSession().getLobHelper();
employeeFace.setId(faceId);
employeeFace.setImage(lobHelper.createBlob(bytes));
PojoUtil.fillSystemProperties(employeeFace);
employeeFaceDao.save(employeeFace);
employee.setFace(faceId);
PojoUtil.fillSystemProperties(employee);
employeeDao.update(employee);
} catch (Exception e) {
e.printStackTrace();
return false;
}
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
潇love梦 2013-12-02
  • 打赏
  • 举报
回复
lizhi_218 兄弟,我也遇到这样的问题,搞了两天都没搞定!你最后是怎么解决的?
  • 打赏
  • 举报
回复
应该是是dbcp没有实现该类型的接口,所以报这个错误。 setBinaryStream是个抽象的方法。
七神之光 2013-05-20
  • 打赏
  • 举报
回复
仔细看看标注 也许要更详细才行
治哥 2013-05-19
  • 打赏
  • 举报
回复
刚搞出来一种实现方式,是将employeeFace的image字段映射成byte[]可以实现,但是为什么映射成blob做不到呢?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧