首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j OGM无法处理类my.class.Class上的ZonedDateTime字段。检查映射

Neo4j OGM无法处理类my.class.Class上的ZonedDateTime字段。检查映射
EN

Stack Overflow用户
提问于 2019-10-24 03:13:04
回答 1查看 533关注 0票数 4

我试图使用java.time.ZonedDateTime驱动程序将一个@NodeEntity类型的字段持久化到Neo4j数据库中,但我只收到以下警告消息:

org.neo4j.ogm.context.EntityGraphMapper :无法在类nz.co.class.project.point.Point上处理AT。检查一下地图。

我正在使用以下库:

  • OpenJDK 11
  • 弹簧启动(2.2.0)
  • 春季数据Neo4j (5.2.0)
  • Neo4j (3.5.12)
  • Neo4j-OGM (3.2.1)
  • Neo4j-OGM-螺栓驱动器(3.2.1)
  • Neo4j-OG原生类型(3.2.1)

结果是节点实体保存在Neo4j数据库中,但没有ZonedDateTime属性。

我做错了什么吗?据我理解,OGM3.2.X版本支持"java.time“包中的所有java日期。

下面是这个问题的一个工作示例:

https://github.com/lcichero/neo4j-ogm-zoneddatetime.git

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 08:14:49

编辑:前面的答案是不正确的,对不起。我再次调查了我们的消息来源,因为你的评论给了我一些怀疑。

您需要显式地启用类型转换(这将在文档中得到解决)。对于Spring应用程序,可以在application.properties中通过添加

代码语言:javascript
复制
spring.data.neo4j.use-native-types=true

你会看到

代码语言:javascript
复制
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,配置将是

代码语言:javascript
复制
Configuration configuration = new Configuration.Builder()
    .uri("bolt://neo4j:password@localhost")
    .useNativeTypes()
    .build()

正如文档中所描述的。

为什么您必须显式地启用这个功能?因为我们不会通过存储“新”本机类型而不是转换的值来破坏和读取预Neo4j-OGM 3.2用户的数据。

旧答案

我们还没有发布3.2版。文档,所以我链接到GitHub上的源代码。 所支持的时态类型是DateTimeLocalTimeDateTimeLocalDateTimeDuration,但正如您所看到的,ZonedDateTime不是ZonedDateTime

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58533623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档