Hallo zusammen,
ich habe folgendes Problem, welches ich nicht verstehe:
Ich habe immer Read-Only Objekte und wenn ich die nun updaten/speichern möchte, dann wollte ich sie explizit auf readonly=false setzen.
Die Idee war folgendes zu machen:
Code:
public void setTransportResult(Deploymentantrag da, String kzTransport, String status) {
da.setKztransport(kzTransport);
da.setTxtstatustransport(status);
saveOrUpdate(da);
}
Code:
public void saveOrUpdate(Object o) {
Session s = getSession();
if(s.isReadOnly(o)) {
s.setReadOnly(o, Boolean.FALSE);
}
s.saveOrUpdate(o);
}
Die Idee war aber nicht funktionsfähig, da die Änderungen nicht Richtung DB persistiert wurden.
Als ich meinen Code dann folgendermaßen geändert habe, lief es.
Code:
public void setTransportResult(Deploymentantrag da, String kzTransport, String status) {
setReadOnly(da, Boolean.FALSE);
da.setKztransport(kzTransport);
da.setTxtstatustransport(status);
saveOrUpdate(da);
}
Code:
public void saveOrUpdate(Object o) {
Session s = getSession();
if(s.isReadOnly(o)) {
s.setReadOnly(o, Boolean.FALSE);
}
s.saveOrUpdate(o);
}
public void setReadOnly(Object o, boolean val) {
Session s = getSession();
s.setReadOnly(o, val);
}
Meine Frage ist nun warum? Irgendwie verstehe ich den Unterschied gerade nicht.
Kann mir da mal jemand auf die Sprünge helfen?
Mit freundlichen Grüßen
Maddin