SDN параметризует тип RelationshipEntity - PullRequest
0 голосов
/ 29 ноября 2018

Для создания RelationshipEntity мне нужно использовать следующую конструкцию:

@RelationshipEntity(type = "PLAYED_IN")
public class Role {
    @Id @GeneratedValue   private Long relationshipId;
    @Property  private String title;
    @StartNode private Actor actor;
    @EndNode   private Movie movie;
}

У меня вопрос - можно ли параметризовать тип RelationshipEntity?Прямо сейчас в приведенном выше примере у нас есть жестко закодированный тип PLAYED_IN, но мне нужно использовать много других типов, таких как, например, DIRECTOR_IN, WRITER_IN и так далее.Как добиться этого с помощью SDN, не вводя для этого отдельные классы RelationshipEntity?

Одним из возможных решений является определение типа задания как свойства RelationshipEntity, но я не уверен, что это хорошая идея, потому что у меня есть~ 30 миллионов объектов и AFAIK Neo4j не поддерживает индексы для RelationshipEntity свойств ... Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 29 ноября 2018

Как насчет использования абстрактного класса с общими основами и наследования каждой необходимой роли от него?

abstract class BaseRelationship {
  @Id
  @GeneratedValue
  private Long relationshipId;

  @Property  
  private String title;

  [...]
}

и

@RelationshipEntity(type = "PLAYED_IN")
public class Role extends BaseRelationship {
  [...]
}
...