我将域类设计如下:

class Invoice {
   static hasMany = [invoiceOneLines: InvoiceLine, invoiceTwoLines: InvoiceLine]
}

class InvoiceLine {
   static belongsTo = [invoice: Invoice]
}

发票行有2种类型:invoiceOneLinesinvoiceTwoLines
然后创建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 invoiceOneLines3 invoice lines as invoiceTwoLines。但是,当我在 View 中显示它时:
invoice.invoiceOneLines.each{}
invoice.invoiceTwoLines.each{}

它显示invoiceOneLines已更正,但在invoiceTwoLines中,它显示了全部(均为invoiceOneLines and invoiceTwoLines)。

我不确定我是否设计正确的关系。我认为它应该是一个临时表(如多对多关系)。

最佳答案

看一下使用mappedBy。 InvoiceLine与Invoice相关联,但是在什么情况下-作为invoiceOneLine或invoiceTwoLine?就目前而言,从发票的 Angular 来看,没有办法知道。 mappingBy消除了这种歧义。

希望这可以帮助。

07-28 01:23