java—jpa如何找到要调用的具体实现?

zujrkrfu  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(279)

我正在做一个项目,在这个项目中,我必须抽象出接口,并将其与具体的实现分离开来。例如,jpa只是一个接口,在引擎盖下,它调用一个具体的实现,例如hibernate库。所以我的问题是它如何知道调用哪个实现。从我到目前为止的研究中,我了解到只需将hibernate添加为一个依赖项,就不必为拼凑而担心了。它在引擎盖下是怎么工作的?

ymdaylpp

ymdaylpp1#

必须在peristence.xml中定义持久性提供程序,以指定要使用的实现。
这个使用hibernate作为实现。

<persistence-unit name="sampleEmf" transaction-type="JTA">

    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    ...

</persistence-unit>

这一个使用eclipselink作为实现。

<persistence-unit name="sampleEmf" transaction-type="JTA">

    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    ...

</persistence-unit>

相关问题