1

DBに保存したい画像ファイルが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この値は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 に答える