2012-01-11 48 views
0

我有兩個領域類:雙向one-to-One的

class Contract { 
    String refNo 
} 

class Attachment { 
    byte[] data 
    String mimeType 
    String fileName 
} 

我如何可以建立關係,讓我都contractInstance.attachmentattachmentInstance.contract?我認爲這是雙向one-to-之一,但我不知道(一個Contract必須有一個確切的Attachment)...

回答

1
class Contract { 
    Attachment attachment 
} 

class Attachment { 
    static belongsTo = [contract: Contract] 
} 

這定義兩者之間的一對一關係,合同是關係的所有者。這意味着如果您保存/刪除合同,則保存/刪除將級聯到附件,但反之不成立。

+0

這似乎工作得很好,只有一個問題:'Attachment.findByContract(Contract.get(someId))'總是返回'null'。任何想法爲什麼? – zoran119 2012-01-12 02:57:40

1

這是不是工作:

class Contract { 
    Attachment attachment 
} 

class Attachment { 
    Contract contract 
} 
+0

與大多數情況一樣,有多種解決方法。我會用DmitryB的解決方案。唐的也會工作。或者,您可以使用hasOne查看第三個選項:(http://grails.org/doc/latest/ref/Domain%20Classes/hasOne.html)。我從來沒有使用過hasOne,但它似乎也能起作用。 – 2012-01-11 14:30:42