xdoo / vaadin-demo

demo using vaadin with spring boot.
4 stars 2 forks source link

Copy Operation funktioniert nicht bei Referenzen #23

Closed xdoo closed 9 years ago

xdoo commented 9 years ago

Hat man ein objekt mit Referenzen, dann funktioniert die copy operation nicht richtig. Es wird folgende Fehlermeldung ausgegeben:

org.hibernate.HibernateException: Found shared references to a collection:

xdoo commented 9 years ago

Tests bitte in #21 nachziehen.

martku commented 9 years ago

Das Kopieren sollte schon direkt in den Entities implementiert sein, da dieses das Wissen darüber besitzen, was kopiert werden soll und was nicht. Entsprechend wäre ich für die Einführung von copy constructors. Wie siehst du das Claus?

xdoo commented 9 years ago

Sehe ich nicht so. Der Service ist aus meiner Sicht der richtige Ort, weil er später die Möglichkeit bieten wird, Operationen zu überschreiben. Ich denke der einzige, der weiß, was wiklich kopiert werden soll ist der Entwickler ;) Ich würde das deshalb im Service belassen und im ersten Schritt einfach alles kopieren. Bei der Implementierung kann der Entwickler das dann einschränken. Z.b. ist das Kopieren eines Geburtsdatums beim Bürger in den meisten Fällen nicht sehr sinnvoll.

xdoo commented 9 years ago

Chris hat mich gerade angefunkt und gemeint wir hätten beide recht - womit er sicherlich recht hat :) Wir können aus dem Service heraus den Konstruktor aufrufen. Wichtig ist nur, dass wir die Möglichkeit erhalten, die Operation im Service über schreiben zu können.

martku commented 9 years ago

Ja, so war es angedacht. Verwendet wird es im Service. Erspart und dann aber Arbeit, wenn die Entity verändert wird, da nur diese dann angepasst werden muss.

chris-koester commented 9 years ago

Super, sind wir ja eigentlich alle zum gleichen Schluss gekommen. Dann sollte es ja richtig sein. ;)

xdoo commented 9 years ago

Da mir das Ticket zugewiesen ist, kann ich es machen. Heute geht allerdings nicht. Wenn es dringend ist, Martin dann bitte schnell selbst machen. Es muss ja nur der Code aus dem Service in den Konstruktor geschoben werden.

martku commented 9 years ago

@btmar: Wie gestern schon angesprochen, bitte alle Entities um diesen Kopier-Konstruktor erweitern und dann im Service nur noch aufrufen, danke.

xdoo commented 9 years ago

Wenn die Tests grün sind, bitte Ticket schließen.