Spring Data Neo4j - Questões @RelationshipType
Estou com dificuldades para recuperar relacionamentos quando o tipo de relacionamento é anotado com um@RelationshipType
campo.
As relações parecem corretas no Neoclipse, mas não estou recuperando resultados no meu aplicativo.
O código que não funciona é (simplificado):
@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;
}
...
}
e:
@RelationshipEntity
public class Relationship {
@RelationshipType
private String type;
...
}
O código que funciona é:
@RelationshipEntity(type = "something")
public class Relationship {
...
}
No entanto, isso não combina com o meu caso de uso (eu tenho um monte de diferentesRelationship
tipos entre combinações arbitrárias deEntity
instâncias.
O código de teste completo está abaixo.Agency
eItem
são ambas subclasses deEntity
.
// 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));
A linha final é onde o teste está falhando. Alguma pista?
M
PS. Eu sou um amador de rank com Neo4j e só aconteceu de encontrar@RelationshipType
, então eu posso estar fazendo algo risivelmente errado. Acredito que sim!