Java プロジェクトで RMI + Hibernate を使用していますが、「同じ識別子を持つ異なるオブジェクト」というエラーで NotUniqueException に関連する問題が発生しています。
私はいくつかの疑問を持っています:
同じ識別子を持つ新しいオブジェクトをコピーしたり作成したりしないことは確かです。RMI を使用すると、別のオブジェクトから新しいオブジェクトが作成される可能性はありますか?
2 つのオブジェクトが同じであることを知るために Hibernate を使用しているメソッドはどれですか? 等しい?
Serializable が Hibernate に関連していることは知っていますが、どのような方法かはわかりません。
RMI を同時に使用して「Differents objects エラー」を解決するにはどうすればよいですか?
以前にオブジェクトのマージを使用して削除または保存を使用するたびに正しいですか?
スタック トレースは次のとおりです。
org.orm.PersistentException: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [dcl.Administrador#10]
at org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:648)
at org.orm.PersistentManager.saveObject(PersistentManager.java:274)
at dcl.AdministradorDAO.save(AdministradorDAO.java:240)
at dcl.BdAdministrador.guardarAdministrador(BdAdministrador.java:62)
at dcl.BdAdministrador.actualizarAdministrador(BdAdministrador.java:109)
at dcl.BdPrincipal.actualizarAdministrador(BdPrincipal.java:555)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
前もって感謝します。