我正在嘗試使用 Bolt 驅動程序將具有 java.time.ZonedDateTime 類型字段的 @NodeEntity 持久保存到我的 Neo4j 數據庫中,但我得到的只是以下警告消息:org.neo4j.ogm.context.EntityGraphMapper:無法處理 nz.co.class.project.point.Point 類上的 AT。檢查映射。我正在使用以下庫:OpenJDK 11Spring Boot(2.2.0.RELEASE)Spring Data Neo4j (5.2.0.RELEASE)Neo4j (3.5.12)Neo4j-OGM (3.2.1)Neo4j-OGM-螺栓驅動程序 (3.2.1)Neo4j-OG-Bolt-Native-Types (3.2.1)結果是節點實體保存在 Neo4j 數據庫中,但沒有 ZonedDateTime 屬性。難道我做錯了什么?據我了解,OGM 版本 3.2.X 支持“java.time”包中的所有 java 日期。這是該問題的一個工作示例:https://github.com/lcichero/neo4j-ogm-zoneddatetime.git
1 回答

慕萊塢森
TA貢獻1810條經驗 獲得超4個贊
編輯:之前的答案不正確,對此表示抱歉。我再次查看了我們的消息來源,因為你的評論給了我一些疑問。
您需要顯式啟用類型轉換(這將在文檔中介紹)。對于 Spring Boot 應用程序,您可以通過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的日志記錄設置為DEBUG。
對于 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
但正如您所看到的 not?ZonedDateTime
。
添加回答
舉報
0/150
提交
取消