Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Spring 在hibernate中使用逐出时_Spring_Hibernate_Transactional - Fatal编程技术网

Spring 在hibernate中使用逐出时

Spring 在hibernate中使用逐出时,spring,hibernate,transactional,Spring,Hibernate,Transactional,我们有一个带有@Transactional的函数,它有一个if表达式。当它为真时,我们必须返回列表(使用它!!),并且在else表达式中我们必须保存一个实体!!但当它返回我的列表时,它会更新数据库中的列表 我们在带有@Transactional(readOnly=true)的函数中使用else表达式,但它不起作用 我们在另一个服务类中的函数中使用else表达式,并使用@Transactional(readOnly=true),但它也不起作用 所以我们使用session.envict(myob

我们有一个带有
@Transactional
的函数,它有一个if表达式。当它为真时,我们必须返回列表(使用它!!),并且在else表达式中我们必须保存一个实体!!但当它返回我的列表时,它会更新数据库中的列表

  • 我们在带有
    @Transactional(readOnly=true)
    的函数中使用else表达式,但它不起作用
  • 我们在另一个服务类中的函数中使用else表达式,并使用
    @Transactional(readOnly=true)
    ,但它也不起作用
所以我们使用session.envict(myobjects)来分离这个对象!! 但我们不认为这是最好的方式


有更好的方法吗?

您可能应该编辑您的问题,使其更可读、更清晰。否则,您的问题可能无法回答,或被community@AnthonyRaymondtanks for edit没有问题,但是您应该再次编辑,以明确您请求的
Readonly=true
应该有效,如果无效,可能是因为您已经打开了另一个事务,并且正在重用它。否则,退出是在事务关闭和提交时防止更新的一种方法。通常,如果实体不应该被持久化,您会希望避免修改它。