我正在为大学开发一个Java项目,我正在努力学习有关按照软件工程原理创建结构良好的软件的框架,技术和最佳实践。我决定使用Spring (Spring-data-jpa)
和Hibernate
作为独立软件,现在我在理解如何使用Java Persistence Api在Hibernate实现提供程序之上创建抽象层时遇到了一些麻烦。我想弄清楚的是在哪个部分(配置文件或java类)我可以从ORM工具切换到另一个工具。我看到我必须使用persistence.xml文件来指定持久性单元和持久性上下文以及数据库参数,但是不清楚EntityManager如何将自己与底层ORM工具绑定以及绑定哪些属性已设定。是"提供商" persistence.xml文件中的属性创建此绑定?任何链接/参考/示例或指南将不胜感激,提前感谢,并原谅我的英语;)
答案 0 :(得分:2)
persistence.xml文件中的每个持久性单元都与提供者相关联。例如,使用Hibernate:
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
如果您想使用其他提供商,您可以为此元素指定另一个值。
请注意,这通常是不必要的,因为您通常只在应用程序中使用一个提供程序。如果类路径中有单个提供程序,则JPA将使用该提供程序。因此,例如,从Hibernate切换到EclipseLink只需要在类路径中使用EclipseLink jar而不是Hibernate jar。
答案 1 :(得分:0)
Hibernate适用于JPA API,因此如果您使用的是hibernate,则不必显式配置JPA。 ORM集成发生在DAO&#34;数据访问对象&#34;你的申请层。