我正在做一个项目,在这个项目中,我必须抽象出接口,并将其与具体的实现分离开来。例如,jpa只是一个接口,在引擎盖下,它调用一个具体的实现,例如hibernate库。所以我的问题是它如何知道调用哪个实现。从我到目前为止的研究中,我了解到只需将hibernate添加为一个依赖项,就不必为拼凑而担心了。它在引擎盖下是怎么工作的?
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>
1条答案
按热度按时间ymdaylpp1#
必须在peristence.xml中定义持久性提供程序,以指定要使用的实现。
这个使用hibernate作为实现。
这一个使用eclipselink作为实现。