Mit spring-data-neo4j möchte ich zwei Klassen mit @RelationshipEntity(type="OWNS")
erstellen, um eine Person
-Klasse mit einer Pet
und Car
zu verknüpfen.Mehrere Beziehungsklassen mit demselben Typ
@RelationshipEntity(type="OWNS")
public class OwnsCar {
@Indexed
private String name;
@StartNode
private Person person;
@EndNode
private Car car;
}
@RelationshipEntity(type="OWNS")
public class OwnsPet {
@Indexed
private String name;
@EndNode
private Person person;
@StartNode
private Pet pet;
}
Das spart an der Graph-Datenbank richtig ohne Probleme, da ich die tatsächliche Node
und Relationship
abfragen können und sehen sie Typ usw.
Aber wenn ich versuche, @RelatedTo(type="OWNS", elementClass=Pet.class)
ich verwenden entweder bekommen Eine Klassenübergabeausnahme oder bei Verwendung der Lazy-Initialisierung erhalte ich falsche Ergebnisse.
@NodeEntity
public class Person {
@Indexed
private String name;
@RelatedTo(type="OWNS", direction=Direction.OUTGOING, elementClass=Pet.class)
private Set<Pet> pets;
@RelatedTo(type="OWNS", direction=Direction.OUTGOING, elementClass=Car.class)
private Set<Car> cars;
}
Das Ergebnis, das ich erhalte, wenn ich versuche, unsere meine Person zu drucken (mein toString()
weggelassen worden, aber es ruft einfach die toString()
für jedes Feld), ist dies:
Person [nodeId=1, name=Nick, pets=[Car [nodeId=3, name=Thunderbird]], cars=[Car [nodeId=3, name=Thunderbird]]]
Wer weiß, wenn Dies kann getan werden, sollte getan werden, ist nur ein Fehler oder eine Funktion, die fehlt?