BlazeDSでSpring+Hibernate3を利用したアプリを作っているのですが、Hibernateで取得したデータをActionScriptで変換(マッピング)できない問題が発生しました。
原因としてはHibernateでリレーション設定しているオブジェクトがjavassistで生成され、クラス名がjavassistで生成された名前になっておりこれがActionScriptで変換ができないためです。
ActionScript側のマッピングするオブジェクトにはRemoteClass設定をしていても送られてくるデータのクラス名が例えば「com.examples.entity.SampleEntity_$$_javassist_1」とかとなっておりこれだとActionScriptでマッピングができません。
そこで以下のページを見つけました。
http://famvdploeg.com/blog/2008/08/blazeds-and-hibernate-proxied-objects/
何をしているかというと、BlazeDSでflex.messaging.io.BeanProxyというクラスがあってこれを継承したHibernate用のBeanProxyクラスを作ります。で、作ったProxyクラスをSpringのBeanとして登録するだけです。
これでアプリケーションを実行すると先に書いたクラスのjavassist部分がない情報が送信されるようになります。
覚書もかねて残しておきます。





