私は、EJB コードからネイティブ Hibernate コードへの最近の翻訳のトラブルシューティングを行っている最中です (EJB の便利さで私が甘やかされてしまったので、面倒なプロセスです)。
私が厄介だと思うことの 1 つは、Hibernate がエンティティ宣言を hbm.xml ファイルに保持し、構成を別のファイルに保持することです。これは必ずしも大きな問題ではありませんが、Netbeans ウィザードでは、開発者がボタンをクリックしてすべてのエンティティをオンザフライで検出し、構成ファイルを更新することはできません。
しかし、persistence.xml を使用すると、クラスを追加するだけで簡単にそれを行うことができ、そのことは忘れてしまいます。もう 1 つの良い点は、persistence.xml には、クラス固有の注釈 (私が保持している) を除いて、ORM に必要なほとんどすべてが格納されることです。
そうは言っても、Hibernate で (1) EE をオフにし、(2) persistence.xml を使用して接続やマッピングなどを取得する方法はありますか?
また、関連する質問 - CriteriaQuery は明らかに Java EE のものです。EJB の使用について私が本当に気に入っていることの 1 つは、コンパイル時に強い制約があることです。たとえば、ClassName_.myAttribute をパラメーターとして CriteriaQuery に直接配置できますが、Hibernate ネイティブの「Criteria」オブジェクトを使用する場合は、代わりに「my_attribute」を使用する必要があり、コンパイル時の整合性チェックを受けません (注: ClassName_.myAttribute は、テーブルの "my_attribute" にマップされます)。
とにかく、コンパイル時の整合性を維持する方法はありますか?
ありがとう。