da ich leider noch keine Lösung für mein Problem so gefunden habe, stelle ich hier mal mein Problem. Ich habe ein Entitiy Event, welches eine Map<Integer, Post>Postlist sowie Set<User>Userlist beinhaltet.
Leider weiß ich nicht wie ich im Hinblick auf die postList und userList die Equals Methode überschreiben kann um diese später in Testzwecken vergleichen zu können. Meine momentane Equals Methode sieht so aus:
Ja event hat eine ID, ändert sich deshalb etwas? Wie kann ich denn weiter an Map und Set delegieren? Also ich habe das bei mir schon mit dem Author gemacht (der ja der User ist und dort habe ich equals überschrieben) nur ich habe ja keine Klasse Map und Set sondern hole mir die aus den Bibliotheken...
Bei Entitäten mit ID hängt IDentität üblicherweise nur von der ID ab. Man würde also nur die ID vergleichen, und alle anderen nicht.
Wenn du jetzt ein Event hast, ist es ja immer noch das gleiche Event, wenn ein Nutzer hinzugefügt wird. (oder analog: auch wenn dir drei Haare mehr wachsen, bist du weiterhin die gleiche Person)
Also ich habe das bei mir schon mit dem Author gemacht (der ja der User ist und dort habe ich equals überschrieben) nur ich habe ja keine Klasse Map und Set sondern hole mir die aus den Bibliotheken...
Map und Set haben alle passende equals, die musst du nur aufrufen
(btw solltest du equals für alle Vergleiche nutzen, die keine primitiven Datentypen sind)
Bei Entitäten mit ID hängt IDentität üblicherweise nur von der ID ab. Man würde also nur die ID vergleichen, und alle anderen nicht.
Wenn du jetzt ein Event hast, ist es ja immer noch das gleiche Event, wenn ein Nutzer hinzugefügt wird. (oder analog: auch wenn dir drei Haare mehr wachsen, bist du weiterhin die gleiche Person)
Das macht Sinn, also müsste ich in meiner bisherige Equals Methode nur den PK überprüfen, bzw. generell müsste man somit nur den PK bei der equals Methode überprüfen oder? Also sähe es bei den Variablen so aus das ich nur this.getEventId() == that.getEventId() machen müsste oder?
Map und Set haben alle passende equals, die musst du nur aufrufen
(btw solltest du equals für alle Vergleiche nutzen, die keine primitiven Datentypen sind)
Das Map und Set auch equals Methoden haben ist mir bekannt, jedoch weiß ich nicht wie das in meinem Fall hier jetzt aussehen soll. Ich kann sie ja nicht überschreiben da ich keine Klasse Map / Set ausprogrammiert habe. Oder kann ich das auch in der Equals Methode von Event machen die ich überschreibe? Falls ja, wie sähe so etwas nun aus?
Das macht Sinn, also müsste ich in meiner bisherige Equals Methode nur den PK überprüfen, bzw. generell müsste man somit nur den PK bei der equals Methode überprüfen oder? Also sähe es bei den Variablen so aus das ich nur this.getEventId() == that.getEventId() machen müsste oder?
Das Map und Set auch equals Methoden haben ist mir bekannt, jedoch weiß ich nicht wie das in meinem Fall hier jetzt aussehen soll. Ich kann sie ja nicht überschreiben da ich keine Klasse Map / Set ausprogrammiert habe. Oder kann ich das auch in der Equals Methode von Event machen die ich überschreibe? Falls ja, wie sähe so etwas nun aus?
Ja die ID ist ein Integer also ein primitiver Datentyp. Dann kann ich die restlichen Variablenvergleiche mit == ja wegmachen.
Achso ich habe gedacht das equals was von postList aufgerufen wird muss ich noch überschreiben. Also reicht das generell wenn ich bei Listen mit this.postList.equals(that.postList) überschreibe? Auch wenn dort Objekte drin sind wie in diesem Fall ein Post?
Achso ich habe gedacht das equals was von postList aufgerufen wird muss ich noch überschreiben. Also reicht das generell wenn ich bei Listen mit this.postList.equals(that.postList) überschreibe? Auch wenn dort Objekte drin sind wie in diesem Fall ein Post?