私はJavaリフレクションを頻繁に使用しており、マップを使用してアプリケーション内の各Beanからのメタデータを格納しています。私はclassNameをキーとして使用しているので、問題は、BeanのclassNameを要求するときに発生することです。
bean.getClass().getName()
Beanが遅延ロードされているかどうかに応じて、2つの異なる結果を得ることができます(一部のリレーションは遅延であり、一部はそうではありませんが、両方で作業したいと思います。
たとえば、クラス:
package com.factorit.beans;<br>
public class Task implements java.io.Serializable {
通常のロードされたオブジェクトで呼び出された場合、次を返します。
com.factorit.beans.Task
ただし、遅延初期化されたオブジェクトで呼び出された場合は、
com.factorit.beans.Task$$EnhancerByCGLIB$$f9d61939
これを取得する方法があるのか、それとも文字列を解析する必要があるのか疑問に思いました。
助けやアドバイスをありがとうございました。
編集: いくつかの情報を追加するだけです:私の怠惰な注釈は次のようになります:
@javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY)
Struts 2.1.8.1、Hibernate 3、Spring2.5.6を使用しています。