1

我有Inputstream/byte[]一个图像文件,我想将其存储在数据库中,但我已经存储了实体,只是我想更新 blob 字段,我有行的 ID。我尝试了以下操作,但对我不起作用:

Query query = session.createSQLQuery( "update tableName set blobFieldName=:blbContent where id=5);

query.setBinary("blbContent",myByteArray)

int val = query.executeUpdate();

n 这个 val 返回 1,但实际上在 DB 中没有发生更新......我不明白我错在哪里。请帮我。我需要这个工作...

4

1 回答 1

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

希望它会帮助你。

于 2012-08-03T06:56:19.430 回答