gpt4 book ai didi

java - 我们如何让 JPA EntityManager Flush 工作

转载 作者:太空狗 更新时间:2023-10-29 22:39:42 26 4
gpt4 key购买 nike

我的问题是为什么 flush 不起作用:

public void ejbService(){
Customer c = em.find(Customer.class,1);
c.setName("newName");
em.flush();
//at this point when I query mysql table I can not see "newName"


thread.sleep(10000);

c.setName("anotherName");
}

完成该方法后,我在数据库中看到“anotherName”我也用 em.find(Customer.class,1,Lock.None); 检查它但还是不行

RGDS

最佳答案

您正在刷新,但您没有提交 - 或以其他方式结束可能配置为自动提交的事务/ session 。

是的,在调用 flush() 之后,DBMS 现在知道您的数据了——但是按照 ACID 标准,在 DBMS 被告知提交它之前,其他数据库 session 都不会看到该数据。

在不了解应用程序其余部分背后的架构的更多详细信息的情况下,您可能希望执行以下操作:

em.getTransaction().commit();

关于java - 我们如何让 JPA EntityManager Flush 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com