我的目标是防止在发生运行时异常的情况下从列表回滚所有对象。
我有两个 Realm 类(class)
class Payment {
String orderNo;
String transactionId;
String orderTotal;
Date paymentDate;
}
class Order extends {
static hasMany = [items: ItemModel];
String orderNo;
String customerNumber;
Date orderDate;
}
当我遍历Order对象列表时,
在侧面createOrder()中创建Order的新实例
然后我调用makePayment()在其中创建Payment的新实例。
如果没有异常(exception),它将很好地工作。
但是,如果在保存“付款”实例时发生异常,它将回滚“付款”和“订单”的所有实例。
我该如何解决。
最佳答案
如果您创建付款的代码(可能是服务?)是最 secret 的东西,即使您只看一小部分样本,也很难提出建议。
但是无论如何,您都可以尝试将@Transactional注释添加到整个服务类中而不是整个方法中:
@Transactional
public someMethod() {
//some logic
}
public createPayment() {
//the logic that you're afraid to share
}
因此,不应回退createPayment()方法。
关于grails - 是否可以持久保存列表中的所有对象,但失败的对象除外。如果是,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831266/