Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getCurrentSession().flush()应该在Dao中_Java_Spring_Hibernate_Dao - Fatal编程技术网

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是一个使用这些函数的类…这就是我想测试它的原因。再说一遍,问题不在于我做了什么,而在于在哪里进行统一测试。。。