我试图使用java.time.ZonedDateTime驱动程序将一个@NodeEntity类型的字段持久化到Neo4j数据库中,但我只收到以下警告消息:
org.neo4j.ogm.context.EntityGraphMapper :无法在类nz.co.class.project.point.Point上处理AT。检查一下地图。
我正在使用以下库:
结果是节点实体保存在Neo4j数据库中,但没有ZonedDateTime属性。
我做错了什么吗?据我理解,OGM3.2.X版本支持"java.time“包中的所有java日期。
下面是这个问题的一个工作示例:
发布于 2019-10-24 08:14:49
编辑:前面的答案是不正确的,对不起。我再次调查了我们的消息来源,因为你的评论给了我一些怀疑。
您需要显式地启用类型转换(这将在文档中得到解决)。对于Spring应用程序,可以在application.properties中通过添加
spring.data.neo4j.use-native-types=true你会看到
Request: UNWIND {rows} as row CREATE (n:`Point`) SET n=row.props RETURN row.nodeRef as ref, ID(n) as id, {type} as type with params {type=node, rows=[{nodeRef=-2, props={x=14.5, y=43.5, at=2018-06-23T00:00+12:00}}]}如果您将org.neo4j.ogm的日志设置为调试。
对于Neo4j-OGM,配置将是
Configuration configuration = new Configuration.Builder()
.uri("bolt://neo4j:password@localhost")
.useNativeTypes()
.build()正如文档中所描述的。
为什么您必须显式地启用这个功能?因为我们不会通过存储“新”本机类型而不是转换的值来破坏和读取预Neo4j-OGM 3.2用户的数据。
旧答案
我们还没有发布3.2版。文档,所以我链接到GitHub上的源代码。 所支持的时态类型是
Date、Time、LocalTime、DateTime、LocalDateTime和Duration,但正如您所看到的,ZonedDateTime不是ZonedDateTime。
https://stackoverflow.com/questions/58533623
复制相似问题