[jpa:11] Re: Hibernate EntityManager の使用感想
Hidenoshin Yoshida
[E-MAIL ADDRESS DELETED]
2007年 4月 21日 (土) 16:21:15 JST
吉田(da-yoshi)です。
> lazy loadingでProxyが使われている場合でも、
> シリアライズってうまくいきます?
> 特にManyToOneの場合です。
>
> バイトコードがエンハンスされたクラスが使われるので
> シリアライズはできても、デシリアライズに失敗するような気がします。
> エンハンスされたクラスは複数のVMを旅することができないような。
別VMでのテストはちょっと試せなかったのですが
Tomcatがshutdown時にSession情報をファイルに保存するのを利用して
HttpSessionにEntityを保存した状態でTomcatを再起動後し
再びSession上のEnityを呼び出してみたらどうなるか試してみました。
結果は、デバッグ情報で確認する限り
デシリアライズされたEntityはProxyではなく
エンハンスされていないクラスでした。
再起動前と後でクラス名を表示させたら
examples.entity.Customer_$$_javassist_1
↓
examples.entity.Customer
のように変化しました。
Hibernateの場合、Proxyは遅延ロードの為に使っているので
シリアライズ時に、そのデータを保持しているクラスと
単純に置き換えているのかもしれません。。。
--
吉田秀之進
[E-MAIL ADDRESS DELETED]
jpa メーリングリストの案内