Spring Data Neo4j - проблемы @RelationshipType
У меня возникают трудности с поиском отношений, когда тип отношения помечен значком @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
так что я вполне могу делать что-то смешно неправильно. Я надеюсь, что это так!
1 ответ
Извините, что разочаровал вас, но во время поиска код прямо сейчас ищет не класс типа, а тип из @RelatedToVia
или же @RelationshipEntity
или имя поля relationships
как тип отношений. Но вы делаете правильное замечание, не могли бы вы поднять вопрос в JIRA?
Вы смотрели в template.getRelationshipsBetween
?
Почему бы вам не создать индивидуальные занятия для ваших отношений? Какой вариант использования для этого подхода?