Я использую Eclipselink JPA (2.0). Мне нужно получить доступ к entityManagerFactory, чтобы очистить весь кэш, так как обычные настройки свойств или обновления или подсказки настроек не работают для меня. Я нашел способ сделать это из этого кода:
entityManager.getEntityManagerFactory().getCache().evictAll();
Но в eclipselink entityManager не существует такого метода, который называется getEntityManagerFactory (). Как мне это сделать?
Я использую конфигурацию Spring bean для EntityManagerFactory, а entityManager помечается @PersistenceContext в слое DAO.
Конфигурация бобов в Spring:
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
<property name="jpaDialect" ref="jpaDialect" />
<property name="persistenceUnitName" value="MyService" />
</bean>
В DAO:
private EntityManager entityManager;
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
Спасибо.