quel est le but des deux fichiers de configuration Hibernate?
C'est mon projet en cours de la structure:
pom.xml
/src
/main
/resources
hibernate.cfg.xml
/META-INF
persistence.xml
J'ai très configuration similaire params dans les deux fichiers (hibernate.cfg.xml
et persistence.xml
), ce qui semble étrange, mais c'est ce que j'ai vu dans de nombreux exemples en ligne et des tutoriels. Je ne comprends pas pourquoi j'ai besoin d'avoir deux fichiers. Est-il possible de travailler seulement avec une? Veuillez expliquer.
ps. Par exemple, dois-je déclarer hibernate.dialect
dans les deux fichiers, un seul sera suffisant? Si oui, laquelle utiliser?
Vous devez vous connecter pour publier un commentaire.
Si vous êtes en utilisant Hibernate API propriétaire, vous aurez besoin de la
hibernate.cfg.xml
. Si vous êtes en utilisant JPA, c'est à dire Hibernate EntityManager, vous aurez besoin de lapersistence.xml
.Donc, vous n'avez généralement pas besoin de la fois que vous utilisez soit Hibernate API propriétaire ou JPA.
Toutefois, si vous ont été à l'aide de Hibernate API Propriétaire et ont déjà une
hibernate.cfg.xml
(ethbm.xml
de mappage XML fichiers) mais souhaitez commencer à utiliser APP, vous pouvez réutiliser les fichiers de configuration existants par la référence à lahibernate.cfg.xml
dans lepersistence.xml
dans lehibernate.ejb.cfgfile
de la propriété - et donc d'avoir les deux fichiers. Réutiliser deshbm.xml
fichiers est de l'OMI, un scénario réaliste qui pourrait justifier le maintien de deux (même si je serais probablement migrer vers les annotations JPA sur le long terme).Références
hibernate3:hbm2ddl
et je pense qu'il a besoin dehibernate.cfg.xml
, droit? Et j'ai l'impression qu'il ne sait pas comment travailler avecpersistence.xml
. Suis-je le droit? J'ai besoin de deux fichiers dans ce cas? (Je travaille UNIQUEMENT avec JPA)hibernate3:hbm2ddl
peut être utilisé avec unjpaconfiguration
et unpersistence.xml
. Donc non, vous n'avez pas besoin dehibernate.cfg.xml
.hibernate.cfg.xml
est pour Hibernate;persistence.xml
est de JPA.Si vous ne Hibernate sans JPA, vous n'avez pas besoin de celui-ci.
Si vous ne l'APP, vous devez avoir un fournisseur de mise en œuvre, ce qui signifie Hibernate, EclipseLink, etc. (Il y a peut être d'autres légitime implémentations JPA, mais je n'ai pas le temps de vérifier à l'instant.)