首页 > 代码库 > org.hibernate.AssertionFailure: null id 错误
org.hibernate.AssertionFailure: null id 错误
对象属性有Blob类型;
而Blob需在输入流中读取;
InputStream in = new FileInputStream(url.getFile());
Blob bookPic = lobHelper.createBlob(in, in.available());
book.setBookPic(bookPic);
book2.setBookPic(bookPic);
如对象bookPic第二次使用的时候以无法再从in 中读取信息,因此报错
改进方法:
重新获取一次in
或使用 in.mark(int)与 in.reset() 但是FileInputStream流对象此方法无效
因此可改用 BufferedInputStream
如:
LobHelper lobHelper = session.getLobHelper();
InputStream in = new BufferedInputStream(new FileInputStream(this.getClass().getResource("/j.jpg").getFile()));
in.mark(in.available());
Blob bookPic = lobHelper.createBlob(in, in.available());
book.setBookPic(bookPic);
//调用流的reset()
in.reset();
book2.setBookPic(bookPic);
具体reset() 与mark(int)使用介绍可查看其它介绍
因此在处理这类特殊对象的时候应由其要注意这种细节
org.hibernate.AssertionFailure: null id 错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。