neo4j - Spring data neo4j - 用自定义转换器替换提供的日期转换器?

标签 neo4j spring-data-neo4j

我最初的 @NodeEntity 类具有 java.util.Date 类型的 @GraphProperty。图形存储库 API 自动将其转换为长/字符串值,并根据我的属性类型存储它。 由于我想从 csv 导入大量数据,因此我希望此日期字段采用自定义或预定义的字符串格式,例如“yyyyMMdd”。所以我为 String -> Date 和 Date -> String 编写了 spring 转换器工厂,并将它们注册在 spring xml 中以用于转换服务。但不幸的是我的转换器从未被调用过。仅调用标准转换器。 后来,当我将日期对象包装在 MyDate 类中并将转换器更改为 String -> MyDate ,反之亦然而不是 java.util.Date 时,将调用转换器并完成所需的序列化。 我不希望这个 MyDate 包装器只是为了转换器。现在,我的问题是,如何使用我的转换器覆盖默认日期转换器?

最佳答案

试试这个:

@Configuration
@EnableNeo4jRepositories
static class TestConfig extends Neo4jConfiguration {
    @Bean
    GraphDatabaseService graphDatabaseService() {
        return new ImpermanentGraphDatabase();
    }

    @Bean
    protected ConversionService neo4jConversionService() throws Exception {
        ConversionService conversionService = super.neo4jConversionService();
        ConverterRegistry registry = (ConverterRegistry) conversionService;
        registry.removeConvertible(Date.class, String.class);
        registry.removeConvertible(String.class, Date.class);
        //add your own converters like this
        registry.addConverter(new MyDateToStringConverter());
        registry.addConverter(new MyStringToDateConverter());
        return conversionService;
    }
}

关于neo4j - Spring data neo4j - 用自定义转换器替换提供的日期转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142056/

相关文章:

neo4j - 从 Neo4J 中的 MATCH 查询中排除一些返回结果

neo4j - 在 unix : mac or linux 中离线备份 neo4j 社区版

java - 在java中为neo4j节点生成j uuid的最佳方法是什么

neo4j - Spring Data Neo4J - 创建与现有节点有关系的新节点

neo4j - 如何从neo4j中的2种不同关系获取出发时间和到达时间

java - 使@Fetch 与接口(interface)一起工作

android - 是否有适用于 Android 的最新图形数据库?

Neo4j bolt 驱动程序协议(protocol)错误

java - 让 spring-data-neo4j 使用 getter 和 setter

spring-annotations - Spring数据和neo4j的正确注解配置是什么