Grails域类关系多对一

时间:2015-05-07 02:05:53

标签: grails gorm hibernate-onetomany

我设计域类如下:

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

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

发票行有两种类型: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)。

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

1 个答案:

答案 0 :(得分:0)

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

希望这有帮助。