2009-08-19 14 views
0

私は、休止状態を使用するアプリケーションを開発中です。オブジェクトが休止状態から返されたとき、もはやpojoではありません。そこには、cglibenhancerのようなものが付いています。私はそれのために何も操作を行うことはできません。私は再びそれをJavaのpojaに変換する必要があります。これは、私はhibernatebeanreplicatorを使用しています。それは、クラスにcglibenhancerが付いていれば、それはオブジェクトをnullにします。問題は、私はそのオブジェクトの1つまたは2つのプロパティをフェッチしているときに、私はそれらを使用したいが、クラスがそれに接続されたcglibenhancerを持っているので、それはnullになります..私はフェッチされていないプロパティmae null。例を挙げてシナリオをより明確にしましょう。Hibernateからプロキシデータを削除する

私は、私は別のクラスのアドレスUserクラスのための私のmapingで

class Address { 
    long addrId; 
    String streetName; 
    String city; 
} 

を持つクラスのユーザー

class User { 
    long id; 
    String name; 
    Address address; 
} 

を持って、私は外部キーとしてaddrIdを格納します。 これで、ユーザークラスのデータとアドレスのIDのみを取得します。 しかし、私は完全にアドレスクラスをロードしていないので、それはcglibenhancerをそれに付けて、私のbeanreplicatorはnullにします。

ユーザークラスのデータ+アドレスIDを取得し、streetNameとcityをnullにする方法はありますか?事前に

おかげで、

Rimaのデサイ

答えて

0

は、私はあなたがどちらかそれを望む理由を私は見ませんが、あなたがやりたいことができるとは思いません。

あなたはPersonAddressをし、何らかの理由で、HibernateはAddressはCGLIBプロキシでなければならないことを決定し、あなたがAddressフェッチできる「フェッチそれがデータベースをヒットすることなくIDをした場合。もちろん、通りや都市を取得しようとすると、そのデータを取得するためにデータベースに行く必要があります。

+0

ご返信いただきありがとうございます。私はコード内でそれを使用するためのアドレスIDを必要とします。私は後で通りや都市の情報を必要とするか、必要ないかもしれません。 Hibernateはidをロードしますが、クラスAddressが完全にロードされていないため、Bean Replicatorはnullを返します。私はロードされた変数がnullに設定されていない方法が必要です。 –

関連する問題