I'm having difficulties retrieving relationships when the relationship type is annotated with a @RelationshipType
field.
The relationships look correct in Neoclipse, but I'm retrieving no results in my application.
The code that doesn't work is (simplified):
@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; } ... }
and:
@RelationshipEntity public class Relationship { @RelationshipType private String type; ... }
The code that does work is:
@RelationshipEntity(type = "something") public class Relationship { ... }
However, this doesn't suit my use case (I have a bunch of different Relationship
types between arbitrary combinations of Entity
instances.
The full test code is below. Agency
and Item
are both subclasses of 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));
The final line is where the test is failing. Any clues?
M
PS. I'm a rank amateur with Neo4j and just happened to find @RelationshipType
, so I may well be doing something laughably wrong. I hope so!