Hibernate的两个配置文件的目的是什么?

yeg*_*256 51 java maven-2 hibernate

这是我目前的项目结构:

pom.xml
/src
  /main
    /resources
      hibernate.cfg.xml
      /META-INF
        persistence.xml
Run Code Online (Sandbox Code Playgroud)

我在两个文件(hibernate.cfg.xmlpersistence.xml)中都有非常相似的配置参数,看起来很奇怪,但这是我在许多在线示例和教程中看到的.我无法理解为什么我需要有两个文件.是否可以只使用一个?请解释.

PS.例如,我应该hibernate.dialect在两个文件中声明,还是仅仅一个就足够了?如果是这样,使用哪一个?

Pas*_*ent 70

如果您使用的是Hibernate的专有API,则需要使用hibernate.cfg.xml.如果您使用JPA即Hibernate EntityManager,则需要使用persistence.xml.

所以,你通常你用不用这两个无论是 Hibernate的专有API或者JPA.

不过,如果你是使用 Hibernate的专有API,而且已经有hibernate.cfg.xml(和hbm.xmlXML映射文件),但希望开始使用JPA,您可以通过引用重用现有的配置文件hibernate.cfg.xmlpersistence.xmlhibernate.ejb.cfgfile财产-因此拥有这两个文件.重用现有hbm.xml文件是IMO的一个现实场景,可以证明保持两者(即使我可能从长远来看,我可能会迁移到JPA注释).

参考


duf*_*ymo 18

hibernate.cfg.xml是为了Hibernate; persistence.xml适用于JPA.

如果你在没有JPA的情况下进行Hibernate,则不需要后者.

如果你做JPA,你必须有一个提供者实现,这意味着Hibernate,EclipseLink等.(可能有其他合法的JPA实现,但我现在没时间检查.)

  • 我必须在两个文件中复制参数? (2认同)