首页 > 解决方案 > 在同一事务中从 bean 而不是 DB 读取修改后的值

问题描述

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

例如 :

@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 本身检索修改后的值,而不是提交内部事务(即新事务)并从数据库中检索它吗?

标签: javaspringspring-boothibernatespring-transactions

解决方案


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


推荐阅读