![](/img/trans.png)
[英]neo4j :: Getting java.lang.IllegalArgumentException: Class class com.my.domain.Actor is not a valid entity class. Please check the entity mapping
[英]Neo4j OGM Unable to process ZonedDateTime field on class my.class.Class. Check the mapping
我正在嘗試使用 Bolt 驅動程序將具有 java.time.ZonedDateTime 類型字段的@NodeEntity 持久化到我的 Neo4j 數據庫中,但我得到的只是這條警告消息:
org.neo4j.ogm.context.EntityGraphMapper:無法在 class nz.co.class.project.point.Point 上處理 AT。 檢查映射。
我正在使用以下庫:
結果是節點實體保存在 Neo4j 數據庫中,但沒有 ZonedDateTime 屬性。
難道我做錯了什么? 據我了解,OGM 版本 3.2.X 支持“java.time”package 中的所有 java 日期。
這是該問題的一個工作示例:
編輯:之前的答案不正確,對此感到抱歉。 我再次查看了我們的消息來源,因為您的評論讓我有些懷疑。
您需要顯式啟用類型轉換(這將在文檔中介紹)。 對於 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的日志記錄設置為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
但你可以看到不是ZonedDateTime
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.