微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Spring @Transactional避免在多个JVM中进行脏读

如何解决使用Spring @Transactional避免在多个JVM中进行脏读

我有一个Spring Boot应用程序。我在不同的服务器上运行此应用程序的多个实例。在某些情况下,在这些不同的JVM实例中,将读取oracle DB中的同一张表。我已经看到在这些JVM实例之间有脏读。

解决此问题,我们可以将@Transactional与隔离级别属性一起使用吗?我相信,由于隔离级别将锁定数据库中的行,因此它也应可跨多个JVM工作,以避免脏读。例如,

def build_profile(f_name: str,l_name: str,qualification: dict) -> dict:
    return {'first': f_name,'last': l_name,**qualification}

pl=[]

while True:
    pl.append(build_profile(input("Enter first name: "),\
                            input("Enter last name: "),\
                            {input("Enter value: "):input("Enter subject: ")}))
    if input("Want to finish? (Y/N) ").upper() == "Y":
        break

print(pl)

不需要全局事务或其他任何事情,我只是想避免脏读。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。