我想在我的测试中手动刷新JPA缓存。通过spring-data插入记录后,我会进行.exists()
检查,实际需要几秒钟,如果存在约束问题,它们只显示在.exists
上,而不是插入代码本身。
我该怎么办?自动装配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!
答案 0 :(得分:0)
好的,我通过从spring-data
继承我的Repository
JPARepository
类,然后使用repo.flush()
警告注意事项 - flush刷新所有缓存的对象,而不仅仅是存储库管理的对象。因此,如果您的存储库为public class BookRepo implements JPARepository<Book>
,则调用bookRepo.flush()
也会刷新您的所有Author
,Reader
和w / e对象。