私たちのアプリケーションでは、デュアルパーシスタンスを持っています。まず、エンティティはMySQL DB(我々はHibernateを使用しています)にオンラインで保存することができます。次にエンティティはシリアル化によってローカルに保存することができます。ハイバーネーションとシリアル化
私が話して実体はKnowledgeBase
オブジェクトを含むクラスUser
の対象であり、そのKnowledgeBase
は、エンティティ(List<Card>
とList<Deck>
)の二つのリストが含まれています。
両方の永続性は別々に問題なく動作しますが、データベースからロードされたシリアル化されたUser
オブジェクトをデシリアライズしようとすると問題が発生します。つまり、少なくとも1回はHibernateになっています。
ArrayList
はKnowledgeBase
の中にPersistentBag
に置き換えられています。それが私の問題の原因になりますか?
また、レイジーローディングがこれらの問題を引き起こす可能性があります。ある時点でオブジェクトを完全にロードするようにHibernateに指示する方法はありますか? (熱心な読み込みとは別に...)
それは確かにあるが、オブジェクトとコレクションを初期化しますが、それは、Hibernate独自のコレクション型を保持します。 XStreamを使ってHibernateをロードしたオブジェクトをマーシャリング/アンマーシャリングするという問題がありました。 Hibernateをロードしたオブジェクトを同じタイプの通常インスタンス化されたオブジェクトにリロードするよりも良い方法はありますか? – Olaf
@Olafはい、1分で私の更新を確認してください – Bozho
ありがとう!次回は、XStreamを使用してHibernateをロードしたエンティティをXMLにマーシャリングする必要があります。 – Olaf