4
我正在使用Java項目RMI + Hibernate,並且遇到與NotUniqueException相關的問題,出現錯誤「具有相同標識符的不同對象」。「具有相同標識符的不同對象」錯誤
我有幾個疑點:
我敢surre我不復制也不會創建具有相同的IDE ntifiers新對象。當我使用它時,RMI是否可能創建另一個新對象?
哪種方法使用Hibernate知道兩個對象是相同的?等於?
我知道Serializable與Hibernate有關,但我不知道以什麼方式?
如何在同一時間使用RMI解決「不同對象錯誤」?
每次使用刪除或保存在對象之前使用合併之前它是否正確?
的棧跟蹤是:預先
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)
感謝。
請發佈堆棧跟蹤。 – EJP
@EJP我發佈了堆棧跟蹤。這個異常被稱爲一個對象「Adminsitrador」,我從數據庫中獲得,我嘗試更新,因爲我修改了一個鏈接到「Publicidad」對象的屬性 – honnix
好吧,這是一個Hibernate問題,與RMI無關,所以我正在調整你的標籤。 – EJP