SDN параметризует тип RelationshipEntity
Для того, чтобы создать 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 ответ
Как насчет использования абстрактного класса с общими основами и наследования каждой необходимой роли от него?
abstract class BaseRelationship {
@Id
@GeneratedValue
private Long relationshipId;
@Property
private String title;
[...]
}
а также
@RelationshipEntity(type = "PLAYED_IN")
public class Role extends BaseRelationship {
[...]
}