如何使用简单的hibernate查询更新blob字段

时间:2012-06-01 12:59:58

标签: java hibernate blob

我有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中没有发生更新...我无法理解我错在哪里。 请帮我。我需要这个工作......

1 个答案:

答案 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;
    }
}

希望它会对你有所帮助。