これは私の現在のプロジェクト構造です:
pom.xml
/src
/main
/resources
hibernate.cfg.xml
/META-INF
persistence.xml
両方のファイルに非常によく似た設定パラメータがあります(hibernate.cfg.xml
およびpersistence.xml
)、奇妙に見えますが、これは私が多くのオンライン例やチュートリアルで見たものです。なぜ2つのファイルが必要なのか理解できません。 1つで作業することは可能ですか?説明してください。
ps。たとえば、hibernate.dialect
両方のファイルで、または1つだけで十分ですか?ある場合、どちらを使用しますか?
Hibernateの専用APIを使用している場合は、hibernate.cfg.xml
が必要です。 JPA、つまりHibernate EntityManagerを使用している場合は、persistence.xml
が必要です。
したがって、Hibernate独自のAPIまたはJPAを使用するため、通常は両方を必要としません。
ただし、Hibernate Proprietary APIを使用していて、すでにhibernate.cfg.xml
(およびhbm.xml
XMLマッピングファイル)があるが、 JPAの使用を開始すると、hibernate.cfg.xml
プロパティのpersistence.xml
のhibernate.ejb.cfgfile
を参照して既存の構成ファイルを再利用できるため、両方のファイルを使用できます。既存のhbm.xml
ファイルを再利用することは、IMOが現実的なシナリオであり、両方を保持することを正当化できる場合があります(長期的にはJPAアノテーションに移行する場合でも)。
hibernate.cfg.xml
はHibernate用です。 persistence.xml
はJPA用です。
JPAなしでHibernateを実行する場合、後者は必要ありません。
JPAを実行する場合は、プロバイダー実装、つまりHibernate、EclipseLinkなどが必要です(他の正当なJPA実装がある可能性がありますが、今は確認する時間がありません)。