java - 在同一事务中从 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 本身检索修改后的值,而不是提交内部事务(即新事务)并从数据库中检索它吗?
解决方案
如果您有该值,那么为什么要从 DB 中获取该值,请使用相同的值。从性能和可维护性的角度来看,这是一个很好的设计。
推荐阅读
- multithreading - Julia 没有使用所有可用的 CPU 线程
- java - 杰克逊解析器可以用来解析 JSON5 吗?
- reactjs - 带有时间间隔的 useEffect 每次运行两次
- json - Rocket - 使用 Rocket 和 okapi 处理无类型的 json 正文
- url-rewriting - Sitecore 8.2 - URL 重写模块不处理 Sitecore 媒体库中的项目
- cron - 在 EST 时区调度 DAG - Airflow
- java - Apache POI 框架何时将 excel 单元格视为空和 null?
- c# - 如何在 ZKTeco 门禁控制器中保存二维码
- python - 递归遍历 XML 并将输出打印到 excel/csv
- arduino - PIC和ARDUINO之间的UART通信