我有Inputstream/byte[]
图像文件,我想存储在DB中,但我已经存储了实体,我只想更新blob字段,我有行的Id。
我试过跟随,但它不适合我:
Query query = session.createSQLQuery( "update tableName set blobFieldName=:blbContent where id=5);
query.setBinary("blbContent",myByteArray)
int val = query.executeUpdate();
这个val返回1,但实际上在DB中没有发生更新...我无法理解我错在哪里。 请帮我。我需要这个工作......
答案 0 :(得分:1)
我遇到了同样的问题,但我找到了解决方案。
我会与你分享我的代码:
//this is a update method
**public boolean updateImage(Image image) {
Session session = template.getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
session.saveOrUpdate(image);
session.flush();
transaction.commit();
session.close();
return true;
}**
以下是我的Image
类,我使用的图像类型是Blob
public class Image {
private int id;
private Blob image;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Blob getImage() {
return image;
}
public void setImage(Blob image) {
this.image = image;
}
}
希望它会对你有所帮助。