Java getCurrentSession().flush()应该在Dao中
我有一个关于Java getCurrentSession().flush()应该在Dao中,java,spring,hibernate,dao,Java,Spring,Hibernate,Dao,我有一个关于Hibernate和Spring的简单问题要问你 我有Dao类,有update,delete,save,等等 我想测试它们,特别是约束条件 因此,我尝试用错误的值更新元素 但是,特别是对于更新,如果我不将flush()添加到dao中,则不会引发异常。->正常,因为数据库没有检查它 但是我不想把flush放在我的dao中 你是怎么做到的 如果您使用sprin数据,那么让您的存储库(Dao)扩展JpaRepository(),然后在调用update、save、delete等之后,如果需要
Hibernate
和Spring
的简单问题要问你
我有Dao
类,有update
,delete
,save
,等等
我想测试它们,特别是约束条件
因此,我尝试用错误的值更新元素
但是,特别是对于更新,如果我不将flush()
添加到dao
中,则不会引发异常。->正常,因为数据库没有检查它
但是我不想把flush
放在我的dao
中
你是怎么做到的 如果您使用sprin数据,那么让您的存储库(Dao)扩展
JpaRepository
(),然后在调用update、save、delete等之后,如果需要,您可以调用它的flush()
方法。如果您使用的是Spring,只需使用Spring数据,而不用自己编写Dao。谢谢您,但我不询问如何制作Dao(事实上,我使用spring数据休眠),这是flush的良好实践。我想让hibernate来管理它,但我需要在添加和更新的单一测试中使用它。我应该在单一测试中调用flush吗?如果您使用spring数据,那么我想知道您为什么要测试更新、删除等,因为您自己还没有实现这些方法。spring应该测试这些方法的正确性。您应该uld测试您编写的方法Dao是一个使用这些函数的类…这就是我想测试它的原因。再说一遍,问题不在于我做了什么,而在于在哪里进行统一测试。。。