Я хотел бы вручную очистить кэш JPA в моих тестах. После вставки записей с помощью данных Spring я проверяю .exists()
, и это действительно занимает несколько секунд, и, если есть проблемы с ограничениями, они отображаются только на .exists
, а не на самом коде вставки.Промывка в JPA
Что я могу сделать? Autowired SessionFactory
существует, но вызов его getCurrentSession().flush()
ничего не делает.
<beans profile="test">
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
в то время как это:
<bean id="sessionFactory" class="org.springframework.orm.jpa.vendor.HibernateJpaSessionFactoryBean">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
вызывает org.hibernate.HibernateException: No CurrentSessionContext configured!
Зачем использовать сеанс Hibernate для очистки? Используйте EntityManager.flush(). –
Поскольку у меня нет доступа к EntityManagers, я использую весенние данные –
И что? Внесите диспетчер объектов с помощью '@PersistenceContext EntityManager em;'. –