Я хотел бы иметь следующий вид базового класса для каждого класса унаследованных узлов.Реализация базового класса NodeEntity, последствия ярлыков
@NodeEntity
public abstract class NodeEntityBase {
// id is not used with advanced mapping spring-data-neo4j.
@GraphId
protected Long id;
@Indexed(unique = true)
@NotNull
protected String appId;
....
Но если я реализую, что весна-данных Neo4j создаст NodeEntityBase метку для каждого узла. Я на самом деле не использую этот ярлык для чего-либо, и меня беспокоит, будет ли это позже проблемой производительности (или некоторыми другими проблемами). Я знаю, что для записей в индексе метки есть ограничение на 2 миллиарда (int max), что может стать проблемой, поэтому по этой причине я хотел бы исправить это.
Есть ли у вас обходной путь или дизайн, чтобы достичь этого? Мне очень хотелось бы иметь базовый класс (ы), где я могу поместить свойства (например, созданную временную метку и т. Д.), Которые почти каждый узел наследует. Я знаю, что могу использовать интерфейсы (я еще не тестировал, если интерфейс также помечен), но я просто был бы счастливее, что мне не нужно вводить сеттеры/геттеры в каждый унаследованный класс.
Будет ли снижение производительности, когда будут миллионы узлов? И я повторяю, что я не буду использовать этот ярлык для запросов. 2 миллиарда лимита может быть достаточно большим, поэтому я мог бы просто забыть об этом.
APPID лучше быть @Indexed (уникальный = верно, уровень = INSTANCE), но дело не в этом –