@RelationshipType
リレーションシップ タイプにフィールドの注釈が付けられている場合、リレーションシップを取得できません。
Neoclipse では関係が正しいように見えますが、アプリケーションで結果を取得していません。
動作しないコードは次のとおりです (簡略化):
@NodeEntity
public abstract class Entity {
@RelatedToVia
private Collection<Relationship> relationships;
public Relationship relatedTo(Entity entity, String type) {
Relationship relationship = new Relationship(type, this, entity);
relationships.add(relationship);
return relationship;
}
...
}
と:
@RelationshipEntity
public class Relationship {
@RelationshipType
private String type;
...
}
動作するコードは次のとおりです。
@RelationshipEntity(type = "something")
public class Relationship {
...
}
ただし、これは私のユースケースには適していません (インスタンスRelationship
の任意の組み合わせの間にさまざまなタイプがたくさんありEntity
ます。
完全なテスト コードは以下のとおりです。Agency
とItem
は両方とも のサブクラスですEntity
。
// Create first entity
Agency arnz = agencyRepository.save(new Agency());
arnz.setCode("ARNZ");
agencyRepository.save(arnz);
// Create second entity
Item r123 = itemRepository.save(new Item());
r123.setCode("R123");
// Create parent/child relationship between entities
r123.relatedTo(arnz, EntityRelationshipType.PARENT);
itemRepository.save(r123);
// Retrieve entity from database
Entity entity = itemRepository.findByCode("R123");
// Verify that relationship is present
assertThat(entity.getRelationships().iterator().hasNext(), is(true));
最後の行は、テストが失敗している場所です。手がかりはありますか?
M
PS。私はNeo4jの素人で、たまたま見つけ@RelationshipType
たので、笑えるほど間違ったことをしているかもしれません。そうだといい!