protected Object convertIfNecessary(Neo4jTemplate template, Object value, Neo4jPersistentProperty property) {
if (property.isIndexedNumerically()) return new ValueContext(value).indexNumeric();
if (property.isNeo4jPropertyType() && property.isNeo4jPropertyValue(value)) return value;
PropertyConverter converter = new PropertyConverter(template.getConversionService(), property);
return converter.serializeIfNotBuiltIn(value);
}