Spring Data Neo4j - problemas @RelationshipType
Tengo dificultades para recuperar relaciones cuando el tipo de relación se anota con un@RelationshipType
campo.
Las relaciones parecen correctas en Neoclipse, pero no estoy obteniendo resultados en mi aplicación.
El código que no funciona es (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;
}
...
}
y:
@RelationshipEntity
public class Relationship {
@RelationshipType
private String type;
...
}
El código que sí funciona es:
@RelationshipEntity(type = "something")
public class Relationship {
...
}
Sin embargo, esto no se adapta a mi caso de uso (tengo un montón de diferentesRelationship
tipos entre combinaciones arbitrarias deEntity
instancias.
El código de prueba completo está abajo.Agency
yItem
son ambas subclases 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));
La última línea es donde la prueba está fallando. ¿Alguna pista?
M
PD. Soy un aficionado de rango con Neo4j y por casualidad encontré@RelationshipType
, así que bien podría estar haciendo algo ridículamente mal. ¡Yo espero que sí!