0

我设计域类如下:

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. 但是,当我在视图中显示它时:

invoice.invoiceOneLines.each{}
invoice.invoiceTwoLines.each{}

它显示invoiceOneLines已更正,但在 中invoiceTwoLines,它显示了所有(两者invoiceOneLines and invoiceTwoLines)。

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

4

1 回答 1

0

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

希望这可以帮助。

于 2015-05-07T03:42:18.950 回答