オブジェクト節約しながらHibernateOptimisticLocking例外を取得:私はコードでモデルファイル持って
Signature.javaここで私はからsignatureImage
を取得しています。このオブジェクトで
public class Signature implements Serializable {
private String id;
private int version;
private byte[] signatureImage;
private String signatureImageName;
private String name;
private String title;
// the getters setters methods
}
、その後MultipartFile
とを使用してJSPをこのフィールドにバイトを保存します。私は次のように私のコントローラとdaohibernateコードからこのオブジェクトは保存しています:
Session session = getSessionFactory().getCurrentSession();
session.saveOrUpdate(signature);
は今、私はエラーを取得しています:
:要求の処理中に: - > HibernateOptimisticLockingFailureException、E :: org.springframework .orm.hibernate4.HibernateOptimisticLockingFailureException:識別子が[]のクラスcom.model.Signatureのオブジェクト:オプティミスティック・ロックに失敗しました。ネストされた例外はorg.hibernate.StaleObjectStateExceptionです:行は更新または削除別のトランザクションによって(または保存されていない値のマッピングが間違っていました)した
は今、これはsaveOrUpdate
クエリへの単一の呼び出しである[com.model.Signature番号]スレッドがない場合は、このエラーも発生しています。
これは正確に言えば、これはデータベース内のこのレコードを変更したサービスです。したがって、バージョン情報は適合せず、更新は拒否されます。このレコードを変更したものを分析する必要があります。 –
SIr、私のアップデートは正常に動作しています。レコードを更新すると、新しいレコードを保存するとエラーは発生せず、このエラーが表示されます。実際には、このテーブルでも削除操作を行っています。だから、このエラーの原因となる操作を削除できますか? –
すでに存在する新しいレコードに主キーを使用していますか? –