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

grails-使用多个belongsTo,但一次只能使用一个,grails,gorm,Grails,Gorm,如果我想将域类(例如MoneyTransaction)用于两个完全不同的目的,即: 1) 当客户下订单时 2) 当一名会员获得报酬时 这样我就有了: class Order { static hasMany = [transactions: MoneyTransaction] } class Member { static hasMany = [payments: MoneyTransaction] } 及 然后本质上,一次只使用一个belongsTo/association,这

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

1) 当客户下订单时

2) 当一名会员获得报酬时

这样我就有了:

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

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


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

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

    static constraints = {

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

    } 

我想你是想摆脱那些属于你的东西。否则,你将有一个多对多的关系,我不相信你想要感谢,也为提供额外的约束。
    static constraints = {

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

    }