gpt4 book ai didi

java - 对同一 JPA 模型的多次调用会覆盖该对象

转载 作者:行者123 更新时间:2023-12-01 04:53:27 25 4
gpt4 key购买 nike

我有一个 Play Framework(1.2.5)/JPA 代码,如下所示:

List<MyObject> nL = MyObject.find("uuid", SubscriptionReferrer).fetch();
MyObject n = nL.get(0);
n.subscriptions.add(SubscriptionReference);
n.save();
JPA.em().flush();
JPA.em().getTransaction().commit();

因为它是在 Controller 领域之外调用的,所以我要求 JPA 写入记录。不管怎样,基本上有人订阅了一个产品,这个方法就会被调用。但他们也可以同时订阅多个产品,从而创建对此方法的多个单独调用。

我似乎遇到的问题是,当调用并行运行时,

List<MyObject> nL = MyObject.find("uuid", SubscriptionReferrer).fetch();
MyObject n = nL.get(0);

bit 被调用并返回对象,但该对象对于所有调用都是单独的,并且当提交保存时,最后一个对象获胜,所有其他对象都将被覆盖。

==编辑==另外,我不知道会传递多少订阅,因为它来自第三方支付提供商。

那么,有没有一种明智的方法可以让我保存对象的所有更新,而无需编写一些额外的缓存层?

谢谢

汤姆

最佳答案

您可以“同步”您的方法,这将确保以原子方式获取和更新对象。在 JPA 中使用事务也可以。

关于java - 对同一 JPA 模型的多次调用会覆盖该对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14566669/

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