1

現在、以前に Hibernate 経由で読み込んだデータをシリアル化しようとしています。タイプ情報を復元するために、次のようにデフォルトの入力を有効にしました。

objectMapper.enableDefaultTyping(DefaultTyping.NON_CONCRETE_AND_ARRAYS,As.PROPERTY);

また、この注釈を使用してエンティティにアイデンティティ情報を追加しました。

@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id")

ただし、@OneToMany私が持っている関係を逆シリアル化すると、この時点で PersistentBag にセッションがないため、逆シリアル化は失敗します。私のプログラムはコンテナーなしで実行されているため、この問題を簡単に修正することはできません。

また、jackson 用のこの hibernate-datatype モジュールがあることも認識していますが、これでは問題は解決しません (このモジュールは主に LAZY_LOADING-hibernate-property を尊重するために使用されると思います)。

したがって、これを修正する私の考えは、 a ではなく a をシリアル化することでしPersistentBagArrayList。これを行う簡単な方法はありますか、それとも独自のシリアライザーを作成する必要がありますか (試してみましたが成功しませんでした)?

4

1 に答える 1

1

シリアライズしたいクラスに注釈を介して Type-in​​formation を追加し、default-typing-line を削除することで、これを解決しました。

objectMapper.enableDefaultTyping(DefaultTyping.NON_CONCRETE_AND_ARRAYS,As.PROPERTY);

于 2013-08-12T09:47:45.920 に答える