2009-09-04 6 views
10

Ich habe eine GWT-Anwendung, die einen RPC-Aufruf an einen Server zum Speichern/Erstellen einer neuen Entität macht. Allerdings wirft die Feder Hibernate Back-End eine Ausnahme mit der folgenden Fehlermeldung:Versuch, saveOrUpdate -Ereignis mit Null-Entität zu erstellen

attempt to create saveOrUpdate event with null entity 

Ich bin nicht sicher, was das bedeutet. Was ist null? Wenn es sich um eine neue Entität handelt, die ich spare, erwarte ich, dass das id Feld null oder möglicherweise 0 ist, und habe dann den Winterschlaf gefüllt. Ist diese Erwartung richtig?

+0

Können wir Ihre Zuordnungsdatei und Ihre Entität sehen? – Zoidberg

+0

Zoidberg, Es scheint sich nicht um eine Zuordnungsdatei für Entitätsausgaben zu handeln. Es scheint ein Serialisierungsproblem zu sein, wie Andre es unten anführt. So in GWT initiiere ich einen RPC-Dienst in Composite-basierten Klasse A, dann in einem anderen Unterfenster (think-Popup) initiiere ich die RPC-Dienstklasse erneut. Ich die Unterfensterklasse Ich kann alle Entitäten vom Typ A erhalten, aber kein Update, Speichern oder Löschen ist erfolgreich. – Rafael

Antwort

15

null entity könnte bedeuten, dass saveOrUpdate() tatsächlich null als Argument erhält, das heißt:

session.saveOrUpdate(null); 

Wenn Sie Serialisierung verwenden zu einem entfernten Ort zu übergeben Objekt (RPC genannt), vielleicht sollten Sie prüfen, Wenn die Serialisierung ordnungsgemäß funktioniert. Irgendetwas sagt mir, dass das Nicht-Serialisieren dazu führen könnte, dass eine Null-Referenz übergeben wird.

+0

Andre, Sowohl die Back-End-Entität als auch die GWT-Client-Entität sind serialisiert. Übrigens kann ich die Entität erfolgreich erstellen/speichern, wenn ich innerhalb von Eclipse-Projekt durch Spring Bohnen laufen. Aber wenn ich denselben Code vom GWT Hosted-Modus aus starte, bekomme ich die Ausnahme ausgelöst. Ich kann auch andere Entitäten erstellen/speichern. seltsam. – Rafael

+0

Sie meinen also, dieser Fehler tritt nur bei dieser spezifischen Entität auf? saveOrUpdate() auf anderen funktioniert gut? –

+0

Yup. Ich fange an zu denken, dass es ein Problem mit dem rpc-Proxy ist. Sehen Sie, ich habe Widget A, wo ich einen RPC-Dienst initiiere. In Widget A instanziiere ich ein anderes Widget, Widget B. Wenn ich das tue, übergebe ich den RPc-Service von Widget A. – Rafael

Verwandte Themen