いくつかの db テーブルをリバース エンジニアリングし、ファサード インターフェイスと実装クラスを作成しました。エンティティに対して refresh() を実行する必要がありますが、EntityManager はリバース エンジニアリングに対して非公開であり、リバース エンジニアリングされたクラスを編集したくありません。refresh() を呼び出すことができるように、EntityManger を取得するにはどうすればよいですか?
1 に答える
1
プライベートが唯一の障壁であり、他に合理的な解決策がない場合は、リフレクションを使用してみてください。
Field entityManagerField = reverseEngineeredInstance.class.getField("entityManager");
entityManagerField.setAccessible(true);
EntityManager entityManager = entityManagerField.get(reverseEngineeredInstance);
EntityManager があります。当然、本番コードでリフレクションを使用することはお勧めしませんが、それがそうであるか、何もない場合は、先に進んでください。
于 2011-02-03T16:23:41.397 に答える