冲洗JPA

时间:2015-06-07 14:17:15

标签: hibernate jpa spring-data

我想在我的测试中手动刷新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!

1 个答案:

答案 0 :(得分:0)

好的,我通过从spring-data继承我的Repository JPARepository类,然后使用repo.flush()

成功了

警告注意事项 - flush刷新所有缓存的对象,而不仅仅是存储库管理的对象。因此,如果您的存储库为public class BookRepo implements JPARepository<Book>,则调用bookRepo.flush()也会刷新您的所有AuthorReader和w / e对象。