実験として、「load」を介して Hibernate エンティティ pojo を取得し、通常のシリアル化を介してファイルに書き込みました。通常の逆シリアル化によって別のプログラムでそのファイルを再度読み取り、リフレクションを使用して、エンティティ オブジェクトのプロキシ クラスに含まれるフィールドとメソッドを見つけました。
驚いたのは、プロキシ クラスに含まれるすべてのメソッドが表示されたことです (たとえば、'getHibernateLazyInitializer()' または 'CGLIB$SET_THREAD_CALLBACKS(net.sf.cglib.proxy.Callback[])' など)。
さらに、デシリアライズされたインスタンスで「getHibernateLazyInitializer()」メソッドを呼び出すことができました。さて、プロキシ コードが動的に生成され、そのクラスが作成された JVM がシャットダウンした後にそのクラスが存在しない場合、どうすればそのメソッドを呼び出すことができたのでしょうか? メソッドバイトコードも、プロキシを介して Hibernate pojo 用にシリアライズ/デシリアライズされますか?