This is my current project structure:
pom.xml
/src
/main
/resources
hibernate.cfg.xml
/META-INF
persistence.xml
I have very similar configuration params in both files (hibernate.cfg.xml and persistence.xml), which looks strange, but this is what I saw in many online examples and tutorials. I can’t understand why do I need to have two files. Is it possible to work just with one? Please explain.
ps. For example, should I declare hibernate.dialect in both files, or just one will be enough? If so, which one to use?
If you are using Hibernate’s proprietary API, you’ll need the
hibernate.cfg.xml. If you are using JPA i.e. Hibernate EntityManager, you’ll need thepersistence.xml.So you generally don’t need both as you use either Hibernate proprietary API or JPA.
However, if you were using Hibernate Proprietary API and already have a
hibernate.cfg.xml(andhbm.xmlXML mapping files) but want to start using JPA, you can reuse the existing configuration files by referencing thehibernate.cfg.xmlin thepersistence.xmlin thehibernate.ejb.cfgfileproperty – and thus have both files. Reusing existinghbm.xmlfiles is IMO a realistic scenario that could justify keeping both (even if I’d probably migrate to JPA annotations on the long run).References