0

休止状態でサーバー側のクエリを作成するとき

(em.getEntityManagerFactory().createEntityManager().createNativeQuery("select..."))

java list hibernate return を含むオブジェクトを形成するorg.hibernate.collection.PersistentList

今、私がこのオブジェクトを私のJavaクライアント側に送信しようとすると、彼はこれを知りません

org.hibernate.collection.PersistentList

オブジェクトを逆シリアル化しようとすると (そして、この hibernate.jar をクライアント側に追加したくありません)。

通常のJavaリストを返すために休止状態にする方法はありますか? 今のところ、このリストをすべてのクエリを通常の Java リストまたは Java Arraylist に置き換えてから、このオブジェクトをクライアント側に送信します。(Json はオプションではありません)。

前もって感謝します。

4

1 に答える 1

0

通常、休止状態のオブジェクトはシリアライズできません。それらをクライアントに送信する場合は、それらのデータをデータ ホルダー オブジェクトにコピーする必要があります (または、クライアント用の特別なソフトウェア パッケージを使用できます)。これは、リストの実装だけでなく、単一の pojo の場合にも当てはまり、通常、遅延読み込みはクライアント側でも機能しません。

リストの要素をクライアントの新しいリストにコピーします。これは、データベースからデータを読み取るために必要な時間と比較して、非常に短い時間しか必要としません。

(クライアント側でどのソフトウェアを使用しているかはわかりません。GWT の場合は、ここで休止状態の統合に関する優れたドキュメントを見つけることができます。しかし、おそらく GWT を使用していない可能性があります。 PersistentList のみよりも hibernate 統合。)

于 2012-05-03T08:38:54.950 に答える