Przykład pliku konfiguracyjnego wiosna:JPA dostawca vs. dialekcie vs. sprzedawca w konfiguracji Wiosna contaniner
<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory"ref="entityManagerFactory"/>
<property name="jpaDialect"ref="jpaDialect"/>
</bean>
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
....
</bean>
i pliku persistence.xml JPA:
<persistence-unit name="EmployeeService">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
</persistence-unit>
Jak widać WZP informacje związane z dostawcą są ustawiane 3 razy. W transakcji menedżera fasoli, kierownik podmiotu fabrycznego fasoli i konfiguracji urządzenia Trwałość:
<property name="jpaDialect"ref="jpaDialect"/>
...
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
...
<provider>org.hibernate.ejb.HibernatePersistence</provider>
Ale faktycznie w moim projekcie skonfigurowany tylko jednostki trwałości z dostawcą. I zadziałało.
Moje pytanie brzmi: jaka jest różnica między opcjami dostawcy, dialektu i dostawcy? Czy muszę ustawić wszystkie z nich, czy mogę pominąć niektóre z nich? Czy mogę ustawić, na przykład jako dostawca dla EntityMangerFactory - Hibernate, jako dialekt w menedżerze transakcji - Eclipse i jako dostawca w konfiguracji jednostek wytrwałości - na przykład coś innego, TopLink.
Nie jest dla mnie jasne. Proszę wytłumacz.
Niezłe wyjaśnienie, ale myślę, że popełniłeś błąd w swojej odpowiedzi. W pierwszym komponencie 'jpaDialect', myślę, że chodziło Ci o' jpaVendorAdapter'. Byłoby lepiej, gdybyś poprawił swoją odpowiedź. – TheKojuEffect
Dzięki za odpowiedź. Przejrzałem HibernateJpaVendorAdapter i znalazłem metody getJpaDialect() i getPersistenceProvider(). Myślę, że byłoby to właściwe, aby skonfigurować fabrykę menedżerów encji tylko za pomocą HibernateJpaVendorAdapter. I to wystarczy, ponieważ zarówno dialer jpa, jak i dostawca jpa mogą być odbierane z klasy adaptera. – Alexandr