Ich habe eine folgende Basisentität:Spring Data Neo4j 4, OGM und @Relationship Anmerkung
@NodeEntity
public class Likeable extends Authorable {
private final static String CONTAINS = "CONTAINS";
@Relationship(type = CONTAINS, direction = Relationship.INCOMING)
private Set<Like> likes = new HashSet<>();
private long totalLikes;
private long totalDislikes;
private double likeSum;
public long getTotalLikes() {
return totalLikes;
}
public void setTotalLikes(long totalLikes) {
this.totalLikes = totalLikes;
}
public long getTotalDislikes() {
return totalDislikes;
}
public void setTotalDislikes(long totalDislikes) {
this.totalDislikes = totalDislikes;
}
public double getLikeSum() {
return likeSum;
}
public void setLikeSum(double likeSum) {
this.likeSum = likeSum;
}
}
mit einem aktuellen Klasse alles funktioniert gut, aber wenn ich hinzufügen likes
Getter/Setter zu dieser Klasse:
public Set<Like> getLikes() {
return likes;
}
public void setLikes(Set<Like> likes) {
this.likes = likes;
}
meine Tests scheitern mit einem Assertion Fehler (keine Ausnahmen) .. zum Beispiel nach dem Löschen Abfrage.
Aber nach
@Relationship(type = CONTAINS, direction = Relationship.INCOMING)
über Getter/Setter alles zu arbeiten beginnt wieder gut und fügte hinzu:
@NodeEntity
public class Likeable extends Authorable {
private final static String CONTAINS = "CONTAINS";
@Relationship(type = CONTAINS, direction = Relationship.INCOMING)
private Set<Like> likes = new HashSet<>();
private long totalLikes;
private long totalDislikes;
private double likeSum;
@Relationship(type = CONTAINS, direction = Relationship.INCOMING)
public Set<Like> getLikes() {
return likes;
}
@Relationship(type = CONTAINS, direction = Relationship.INCOMING)
public void setLikes(Set<Like> likes) {
this.likes = likes;
}
...
}
Ist es ein richtig kommentierte NodeEntity
Klasse? Eine solche Erklärung ist für mich ein wenig überflüssig. Könnten Sie bitte in diesem Fall eine korrekte Erklärung abgeben?
Danke für Ihre Antwort. Muss ich diese Annotation auch zu allen möglichen Mutatoren hinzufügen (nicht nur zu Getter/Setter-Methoden) wie zum Beispiel 'addLike (Like like)', 'removeLike (Like like)' und so weiter? – alexanoid
Nein, nur die Getters/Setter. Die Mutatoren werden nicht während der (De-) Serialisierung verwendet. –