Для работы с автономным сервером neo4j-graphdatabase я добавляю зависимость SDN 4.0.0.RC1 в свой pom:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>4.0.0.RC1</version>
<exclusions>
<exclusion>
<groupId>org.neo4j.app</groupId>
<artifactId>neo4j-server</artifactId>
</exclusion>
</exclusions>
</dependency>
В моем приложении я хочу управлять семьями. Люди как NodeEntities, типы отношений как NodeEntities и семейные отношения как RelationshipEntities.
Чтобы сохранить узлы или отношения, я использую repository.save(T t) (repository extends GraphRepository<T>)
. Это работает для всех узлов, но не для отношений.
Явный нерабочий код:
Relation createdRelation = new Relation(typeName, from, to, getCurrentUsername());
createdRelation.setBegin(begin);
createdRelation.setEnd(end);
Relation relation = relationRepository.save(createdRelation);
Я получаю Relation-Object обратно из save(T t). Но RelationshipEntity не сохраняется в базе данных graphdatabase. Также мой объект отношения не имеет идентификатора.
Класс RelationshipEntity выглядит следующим образом:
@RelationshipEntity(type = "RELATION")
public class Relation extends BaseMutableGraphEntity {
@Property
private String type;
@StartNode
private Person fromPerson;
@EndNode
private Person toPerson;
private Relation() {
}
...getters and setters...}
Граф-идентификатор сохраняется в BaseClass:
public abstract class BaseGraphEntity implements AuditEntity {
@GraphId
private Long id;
...with getters and setters...}
Мой вопрос сейчас:
Как я могу сохранить свои RelationshipEntities с помощью Spring Data Neo4j 4 RC1?
Есть ли другой репозиторий для RelationshipEntities?
P.S.: Я пытался изменить место моего граф-идентификатора на основной RelationshipEntity, но это не работает.