Neo4j, SDN5 и индекс над полем объекта
У меня есть следующая сущность узла SDN5:
@NodeEntity
public class Value {
@Index(unique = false)
private Object value;
}
Как видите, я определил value
как Object
и поместил индекс по этому.
Согласно бизнес-логике моего приложения, я помещаю различные типы Java в Value.value
лайк String
, Long
, Double
, Integer
и т.д. Учитывая это, мне интересно, будет ли индекс Neo4j эффективно работать там? Есть ли здесь какой-то смысл? Пожалуйста, объясни.
2 ответа
Я ничего не могу сказать вам о производительности, но технически это возможно сделать.
Одна идея, которая пришла мне в голову, чтобы избежать смешанных типов в базе данных, состоит в том, чтобы использовать конвертер для свойства, которое не делает ничего, кроме .toString()
и обратно (может быть уродливым кодом для преобразования обратно в Java и отбрасывать некоторые типы, например, в разнице не будет Double
а также Float
).
Значения свойств могут быть только примитивных типов или массивов для свойства узла.