Ich glaube, ich habe irgendwo gelesen, dass Leute während der Kompilierungszeit (mit APT) Gleichheits-/Hashcode-/ToString-Methoden generieren, indem sie ermitteln, welche Felder Teil des Hash-/Gleichheitstests sein sollten. Ich konnte nichts dergleichen im Web finden (vielleicht habe ich es geträumt?) ...
Das könnte man auch so machen:
public class Person {
@Id @GeneratedValue private Integer id;
@Identity private String firstName, lastName;
@Identity private Date dateOfBirth;
//...
}
Für eine Entität (wir wollen also einige Felder ausschließen, z. B. die id).
Oder wie ein Scala Fall Klasse d.h. ein Wert Objekt:
@ValueObject
public class Color {
private int red, green, blue;
}
Dadurch wird die Datei nicht nur lesbarer und einfacher zu schreiben, sondern es wird auch sichergestellt, dass alle Attribute Teil des Gleichheits-/Hashcodes sind (für den Fall, dass Sie später ein weiteres Attribut hinzufügen, ohne die Methoden entsprechend zu aktualisieren).
Ich habe gehört, dass APT in IDE nicht sehr gut unterstützt wird, aber ich würde das nicht als ein großes Problem ansehen. Schließlich werden die Tests hauptsächlich von Continuous Integration Servern ausgeführt.
Wissen Sie, ob dies bereits geschehen ist und wenn nicht, warum? Danke