データベースからオブジェクトを削除するときにエラーが発生しました。エラーは次のとおりです。org.hibernate.NonUniqueObjectException
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.cartif.database.ApplicationField#asd]
私はオブジェクトを削除するには:私はオブジェクトでこのメソッドを呼び出すと、私はエラーを取得
public static void delete(Object o){
if(session == null) createSession();
Transaction tx = session.beginTransaction();
tx.begin();
session.delete(o);
tx.commit();
}
を。アプリケーションをデバッグすると、tx.begin()に例外がスローされます。ライン。
name deviceid
"asd" 1
"ElectricalConsumption" 1
"Energy" 1
は、なぜそれが起こっている:私は列に表示され、このオブジェクトは、一意であるデータベースで
?
ありがとうございます!
どうすれば問題を解決できますか? session.close()、session = null;を試してみました。新しいセッションsession.clear()を作成しますが、動作しません。 –
対処方法は、状況によって異なります。オブジェクト(UIレイヤーから)を持っていて、そのオブジェクトでPKを検索してから削除しようとすると、そのオブジェクトに対して直接削除を呼び出すことができます。 'session.flush()'を試してみてください。両方のオブジェクトをマージしてみることができます(それが識別されている場合)。このソリューションは、文脈に完全に依存します。 – Nivas