gpt4 book ai didi

grails - 使用多个belongsTo,但一次只有一个

转载 作者:行者123 更新时间:2023-12-05 00:36:03 24 4
gpt4 key购买 nike

如果我想使用域类,例如MoneyTransaction,用于两个完全不同的目的,即:

1) 当客户下订单时

2)当成员(member)获得报酬时

这样我就有类似的东西:

class Order {
static hasMany = [transactions: MoneyTransaction]
}

class Member {
static hasMany = [payments: MoneyTransaction]
}


class MoneyTransaction {
static belongsTo = [order: Order, member: Member]
static constraints = {
order(nullable: true)
member(nullable: true)
}
}

然后本质上 只有一次使用一个belongsTo/association,这是非常“标准”的用法,还是我需要切换这个模型?现在 MoneyTransaction 具有信用卡和 ACH 支付功能,因为两者都适用于订单。对于付款,将仅使用 ACH 部分。

最佳答案

根据您的要求,您发布的域类定义似乎是正确的。我在这里进行的一项修改是添加一个自定义验证器,以确保 order 和 member 不会同时为 null。

    static constraints = {

order(nullable: true, validator: {field, inst -> inst.member || field})
member(nullable: true)

}

关于grails - 使用多个belongsTo,但一次只有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8638940/

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