JDO detach/attach object over rmi
nu har jeg ikke været så heldig i fortiden med at stille jdo spørgsmål, men jeg prøver aligevel igen, hvis der skulle være kommet nogen eksperter i det herinde ;)det er dette jeg prøver at opnå
http://docs.solarmetric.com/ref_guide_detach.html
mere precist
http://docs.solarmetric.com/ref_guide_detach_behavior.html
Example 11.1. Detaching a Single Instance
jeg har forstået det sådan at jeg kan bede clienten bede om et persisteter objekt i en detached tilstand så den kan ændre det sende det tilbage hvor på det bliver attached igen.
dette gøres ved at clieten kalder denne metode over rmi
// Find the object by ip on the server, detach it and send it to the
client
public Server processClientRequest(String ip)
{
KodoPersistenceManager kpm = (KodoPersistenceManager) pm;
ID key = new Server.ID(ip);
Server server = (Server) pm.getObjectById(key, true);
kpm.detach (server);
return server;
}
den ændrer objektet og sender det tilbage hvorpå det bliver attached
// Recives a server object and attaches it
public void notifyError(Server server) throws RemoteException
{
KodoPersistenceManager kpm = (KodoPersistenceManager) pm;
kpm.currentTransaction ().begin ();
kpm.attach (server);
kpm.currentTransaction ().commit ();
}
så skulle ændringerne gerne afspejles i databasen.
men det eneste jeg opnår er en
kodo.util.FatalDataStoreException: kodo.util.FatalDataStoreException: Invalid argument value, message from server: "Duplicate entry '192.168.1.2' for key 1" {prepstmnt 6865516 INSERT INTO server (IP, JDOCLASS, JDOVERSION) VALUES (?, ?, ?) [reused=0]} [code=1062, state=S1009]
jeg havde forventet en UPDATE
så hvis der er nogen der kan se hvad jeg gør forkert eller har misforstået så sig til :)
