Hibernate 3.x のドキュメントを読んでいるうちに、プライベートな可視性を持つ POJO の引数なしのコンストラクターも宣言できることがわかりましたが、ドキュメントには制限があると書かれています。
引数なしのコンストラクターは、すべての永続クラスの要件です。Hibernate は、Java リフレクションを使用してオブジェクトを作成する必要があります。コンストラクターはプライベートにすることができますが、ランタイム プロキシの生成と、バイトコード インストルメンテーションを使用しない効率的なデータ取得には、パッケージまたはパブリックの可視性が必要です。
私は Hibernate を初めて使用し、ランタイム プロキシがいつ使用され、いつバイトコードが使用され、Hibernate でどのように機能するかを理解しようとしています。また、バイトコード インストルメンテーションとは何か、Hibernate でどのように使用されるかについても説明します。