我设计域类如下:
class Invoice {
static hasMany = [invoiceOneLines: InvoiceLine, invoiceTwoLines: InvoiceLine]
}
class InvoiceLine {
static belongsTo = [invoice: Invoice]
}
发票行有两种类型: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
。但是,当我在视图中显示它时:
invoice.invoiceOneLines.each{}
invoice.invoiceTwoLines.each{}
它显示invoiceOneLines
已更正,但在invoiceTwoLines
中,它显示了所有内容(invoiceOneLines and invoiceTwoLines
)。
我不确定我是否设计了正确的关系。我认为它应该是一个临时表(就像许多关系一样)。
答案 0 :(得分:0)
使用mappedBy查看。 InvoiceLine与发票相关联,但在什么情况下 - 作为invoiceOneLine或invoiceTwoLine?就目前而言,从Invoice的角度来看,没有办法知道。 mappedBy消除了这种歧义。
希望这有帮助。