Подтвердить что ты не робот

Какова цель двух файлов конфигурации для Hibernate?

Это моя текущая структура проекта:

pom.xml
/src
  /main
    /resources
      hibernate.cfg.xml
      /META-INF
        persistence.xml

У меня очень похожие параметры конфигурации в обоих файлах (hibernate.cfg.xml и persistence.xml), что выглядит странно, но это то, что я видел во многих онлайн-примерах и учебниках. Я не могу понять, почему мне нужно иметь два файла. Можно ли работать с одним? Пожалуйста, объясните.

пс. Например, следует ли объявлять hibernate.dialect в обоих файлах, или одного достаточно? Если да, то какой из них использовать?

4b9b3361

Ответ 1

Если вы используете API-интерфейс Hibernate, вам понадобится hibernate.cfg.xml. Если вы используете JPA i.e Hibernate EntityManager, вам понадобится persistence.xml.

Таким образом, вам вообще не нужны оба, поскольку вы используете или Hibernate API или JPA.

Однако, если вы использовали Hibernate Proprietary API и уже имеете файлы сопоставления hibernate.cfg.xmlhbm.xml XML), но хотите начать использовать JPA, вы можете повторно использовать существующие файлы конфигурации на ссылаясь на hibernate.cfg.xml в persistence.xml в свойстве hibernate.ejb.cfgfile - и, следовательно, имеет оба файла. Повторное использование существующих файлов hbm.xml - это ИМО реалистичный сценарий, который может оправдывать сохранение обоих (даже если я, вероятно, перейду на аннотации JPA в конечном итоге).

Ссылки

Ответ 2

hibernate.cfg.xml для спящего режима; persistence.xml для JPA.

Если вы делаете Hibernate без JPA, вам не нужен последний.

Если вы делаете JPA, у вас должна быть реализация поставщика, что означает Hibernate, EclipseLink и т.д. (Возможно, существуют и другие законные реализации JPA, но у меня нет времени проверить прямо сейчас.)