私は、ボルトのドライバーを使用して、私のNeo4jデータベースにタイプjava.time.ZonedDateTimeのフィールドを持つ@NodeEntityを保持しようとしていますが、私が得るすべては、この警告メッセージです:
org.neo4j.ogm.context.EntityGraphMapper:クラスnz.co.class.project.point.PointにATを処理できません。マッピングを確認してください。
私は、次のライブラリを使用しています:
- OpenJDKの11
- 春ブーツ(2.2.0.RELEASE)
- 春データのNeo4j(5.2.0.RELEASE)
- Neo4j(3.5.12)
- Neo4j-GMO(3.2.1)
- Neo4j-OGMボルトドライバ(3.2.1)
- Neo4j-AND-ボルト - ネイティブタイプ(3.2.1)
結果はのNeo4jデータベースではなくZonedDateTime属性なしで保存されているノードの実体です。
私は何かを間違っているのでしょうか?それはOGMバージョン3.2.Xは「java.time」パッケージ内のすべてのJavaの日付をサポートしていることを私の理解です。
ここでは、問題の実施例です。
編集:前の答えは、このために申し訳ありませんが、正しくありませんでした。あなたのコメントは私にいくつかの疑問を与えたので、私は、われわれの情報源に再び見えました。
あなたは、明示的に型変換を(これはドキュメントでカバーされてしまいます)を有効にする必要があります。春ブートアプリケーションのためには、でこれを行うことができます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
。