Korzystając z danych sprężynowych-neo4j, chcę utworzyć dwie klasy przy użyciu @RelationshipEntity(type="OWNS")
, aby połączyć klasę Person
z Pet
i Car
.Wiele klas relacji z tym samym typem
@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;
}
Oszczędza do Bazy Graph prawidłowo bez żadnych problemów, jak mogę zapytania rzeczywistą Node
i Relationship
i widzą typ itd
Ale gdy próbuję użyć @RelatedTo(type="OWNS", elementClass=Pet.class)
I albo dostać wyjątek rzutu klasowego lub podczas używania leniwej inicjalizacji otrzymuję niepoprawne wyniki.
@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;
}
Wynik otrzymuję gdy próbuję wydrukować naszą moją osobę (mój toString()
został pominięty, ale to po prostu wywołuje toString()
dla każdego pola) jest taka:
Person [nodeId=1, name=Nick, pets=[Car [nodeId=3, name=Thunderbird]], cars=[Car [nodeId=3, name=Thunderbird]]]
Czy ktoś wie, czy to można zrobić, należy zrobić, to tylko błąd lub funkcja, której brakuje?