多対 1 要素で宣言されているドメイン オブジェクトにプロパティがあります。このプロパティの基本的な構文は次のようになります。
<many-to-one name="propertyName" class="propertyClass" fetch="select" not-found="ignore" lazy="proxy" />
ここでのアイデアは、Hibernate がこのプロパティを積極的にフェッチしないようにすることです。null の可能性があるため、not-found 無視が設定されます。
しかし、Hibernate は、この関連付けを含むクラスをロードすると、親クラスがロードされるときに実際のクラス (プロキシでさえない) インスタンスをロードします。一部のプロパティはサイズが 1MB を超えるため、大量のヒープ スペースを占有します。
ただし、not-found が例外に設定されている (またはデフォルトで例外に設定されている) 場合、このプロパティを持つ親クラスはプロキシをロードします!
このプロパティをnullにすることを許可しながら、休止状態がプロキシをロードしないようにするにはどうすればよいですか?
私は lazy=no-proxy を見つけましたが、ドキュメンテーションはある種のバイトコードの変更について述べており、詳細には触れていません。誰かが私を助けることができますか?
問題があれば、それは Hibernate の Java バージョンであり、少なくともバージョン 3 です (役立つ場合は実際のバージョンを調べることができますが、今のところ Hibernate 3+ です)。
先に明記しませんでしたが、Java のバージョンは 1.4 です。そのため、Java アノテーションはサポートされていません。