spring-data-neo4j を使用して、クラスを aとの両方@RelationshipEntity(type="OWNS")
にリンクするためにを使用して 2 つのクラスを作成したいと考えています。Person
Pet
Car
@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;
}
実際Node
にクエリを実行して、タイプなどRelationship
を確認できるため、これは問題なくグラフ データベースに適切に保存されます。
しかし、使用しようとする@RelatedTo(type="OWNS", elementClass=Pet.class)
とクラスキャスト例外が発生するか、遅延初期化を使用すると誤った結果が得られます。
@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;
}
toString()
my person (myは省略されていますが、単にtoString()
for each フィールドを呼び出すだけです)を印刷しようとしたときに得られる結果は次のとおりです。
Person [nodeId=1, name=Nick, pets=[Car [nodeId=3, name=Thunderbird]], cars=[Car [nodeId=3, name=Thunderbird]]]
これが可能かどうか、行う必要があるかどうか、単なるバグまたは欠落している機能かどうかを誰かが知っていますか?