[jpa:13] Re: Hibernate EntityManager の使用感想

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 4月 21日 (土) 23:00:38 JST


小林 (koichik) です.

Date:    Sat, 21 Apr 2007 16:53:14 +0900
From:    Hidenoshin Yoshida <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [jpa:12] Re: Hibernate EntityManager の使用感想

> LAZYロードさせないままのProxyを持ったEntityをHttpSessionに保存して
> 再起動したところ、Proxyのままでした。

Proxy のクラス名が変わらなければデシリアライズ
できるようになってますね.
でもでも,クラス名が変わることは普通にありそう.

例えば Foo と Bar というエンティティがあって,Bar から
Foo への関連が Proxy になってるとします (未ロード).
Bar をセッションに保存して Tomcat を終了し,新たな
エンティティ Baz を追加します.
そして Tomcat を再起動すると... どうなるでしょう?

最初は例えば

Foo_$$_javassist_1
Bar_$$_javassist_0

だったのが,再起動後は

Foo_$$_javassist_2
Bar_$$_javassist_0
Baz_$$_javassist_1

と変わってしまってデシリアライズに失敗するとか.
Proxy を作成する順番が名前順になるとは限らないけれど,
Proxy のクラス名が作成順に依存しているのは注意が必要かも.
まぁ,あんまり問題になりそうな状況が考えつきませんが.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



jpa メーリングリストの案内