Sagen wir, ich habe eine User
und eine Product
. Der Benutzer sollte Produkte bewerten können und eine Bewertung kann viele Eigenschaften wie zum Beispiel eine Anzahl von Sternen von 1 bis 5 haben. Ich hätte gerne die Product
und die User
in verschiedenen Maven-Modulen. Allerdings sollte Product
seinen Besitzer kennen, daher gibt es eine Abhängigkeit zu dem Modul, das User
enthält. Ich würde auch gerne ein Rating-Modul haben, das alles im Zusammenhang mit Bewertungen enthält.Zyklische Abhängigkeit bei Verwendung von RelationshipEntity
konstruierte ich die Bewertung
@RelationshipEntity(type="RATES")
public class Rating{
private Long id;
@StartNode
private User rater;
@EndNode
private Product ratee;
@Property
private RatingProperty property;
//Getter/Setter
}
Wo die RatingProperty
die int
die 1 bis 5 Sterne darstellt, enthält. Nun verstehe ich von der Documentation, dass ich die Rating
als ein Attribut in einem Knoten haben muss, weil SDN4 es nicht akzeptiert. In der Tat, wenn ich es nicht als Attribut verwendet und versucht save
es, ich habe die ID null
und nicht Element in der DB erschienen. Da die Rating
beide User
und Product
wissen muss, bekomme ich eine zyklische Abhängigkeit, wenn ich versuche, die Rating
in die User
Klasse zu setzen. Das gleiche, wenn ich es in die Klasse lege.
Soweit ich im Moment zu verstehen, unter Verwendung eines RelationshipEntity
scheint nicht möglich sein, wenn die Start- und EndNode Einheiten in verschiedener Maven-Module sind, weil die Beziehung beide wissen muss, und einer des Knoten muss das wissen, Beziehung. Das scheint nicht richtig, also denke ich, dass ich etwas sehr falsch verstehe. Ich habe auch versucht, eine neue NodeEntity im Rating-Modul zu erstellen, nur um die Rating
zu halten. Dies war
@NodeEntity
public class RatingWrapper{
private Long id;
@Relationship(type="RATES)
private Rating rating;
//Getter/Setter
}
aber auf diese Weise bekam ich das gleiche Verhalten, das ich habe, wenn ich nicht die RelationshipEntity
als Attribut irgendwo benutzt haben.
Sehen Sie einen Weg, dies besser zu tun?
Das hat mein Problem nicht gelöst, da meine 'RatingProperty' momentan nur ein Enum ist, aber das hätte wahrscheinlich zu zukünftigen Problemen geführt, danke. – Urr4