当前位置: 首页 > 知识库问答 >
问题:

在同一事务中从bean而不是DB读取修改值

祁烨
2023-03-14

我面临一个场景,我需要更新参数,并希望在同一事务中检索修改后的值

例如:

@Transactional(propagation = Propagation.REQUIRED)
public void modifiyParameter(Object object, BigInteger attribute_id) {
   ...
   Attribute attrValue = object.getParameter(attribute_id);
   attrValue.setValue("new_value");
   object.setParameter(attr_id, attrValue);
   ...
   object.getParameter(attribute_id);   //getting old value instead of modified value  
}

我的问题是,我们不能在同一事务中从bean本身检索修改后的值,而不是提交内部事务(即新事务)并从DB中检索它吗?

共有1个答案

辛建业
2023-03-14

如果您有该值,那么为什么您要从DB中提取该值,请使用相同的值。从性能和可维护性的角度来看,这是一个很好的设计。

 类似资料:
  • 首先显示代码,这是我的代码,如下所示: 在此处输入图像描述(这是屏幕截图) 我确信方法“saveTestTx()”是一个完整的事务,因为如果我调用print(22/0),它可以回滚。我的意思是从192行到199行的代码在同一个事务中。根据我的java开发经验,我认为lock2是lock1的结果,我知道在打印lock2之前,事务还没有提交,但它们在同一个事务中,同一事务中的修改是可见的,所以在提交事

  • 我的问题与这个老问题很相似,但没有令人满意的答案贴在那里。 在DB2中有一个DB表,我试图通过两个或多个单独的Java线程对其进行并行记录读取,前提是这些线程应该读取不同的数据集,即如果线程1读取了前1000条记录,线程2不应该选择这些记录,而是选择不同的1000条记录(如果可用的话)。 由于线程将读取不同的行,因此在读取时不会发生冲突。Connection对象也不会在线程之间共享--它们将使用自

  • 下面是BeanFactoryPostProcessor的简要功能 BeanFactoryPostProcencer允许您修改实际的bean定义,而不是创建它时的实例。Spring IoC容器将允许BeanFactoryPostProcess读取配置元数据,并可能在容器实际实例化任何bean之前对其进行更改。属性持有人配置是BeanFactoryPostProcess的示例,用于将一些属性值外部化到

  • 我试图通过使用命令“java postfix 错误: 请在java.util.scanner.throwfor(未知源) 在java.util.scanner.next(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.sca

  • 字符串表[]=新字符串[100];