我将域类设计如下:
class Invoice {
static hasMany = [invoiceOneLines: InvoiceLine, invoiceTwoLines: InvoiceLine]
}
class InvoiceLine {
static belongsTo = [invoice: Invoice]
}
发票行有2种类型:
invoiceOneLines
和invoiceTwoLines
。然后创建
new invoice line
:我做了如下操作:def invoice = new Invoice().save(flush:true)
invoice.invoiceOneLines.add(new InvoiceLine().save(flush:true))
invoice.invoiceTwoLines.add(new InvoiceLine().save(flush:true))
我创建了
2 invoice lines as invoiceOneLines
和3 invoice lines as invoiceTwoLines
。但是,当我在 View 中显示它时:invoice.invoiceOneLines.each{}
invoice.invoiceTwoLines.each{}
它显示
invoiceOneLines
已更正,但在invoiceTwoLines
中,它显示了全部(均为invoiceOneLines and invoiceTwoLines
)。我不确定我是否设计正确的关系。我认为它应该是一个临时表(如多对多关系)。
最佳答案
看一下使用mappedBy。 InvoiceLine与Invoice相关联,但是在什么情况下-作为invoiceOneLine或invoiceTwoLine?就目前而言,从发票的 Angular 来看,没有办法知道。 mappingBy消除了这种歧义。
希望这可以帮助。