2013-05-02 39 views
1

我有一個組合模式,其中父對象有一個子對象列表,例如Order和LineItem。Grails/GORM - 相當於JPA @ElementCollection

它的行爲與級聯刪除孤兒的行爲相似,但子對象是@Embeddable而不是@Entities,並且沒有獲得自己的ID - 它們總是通過其父對象進行管理。

在JPA我可以做這樣的事情,以確保無論何時我保存訂單,了LineItem集合同步,包括刪除刪除項目:

public class Order { 
    @ElementCollection 
    @CollectionTable(...) 

    private Set<LineItem> items; 

} 

Grails中,有什麼相同呢?

我可以做hasMany級聯全刪除孤兒,但寧願如果有類似的方式爲子對象沒有自己的ID(基本上,不是實體)。

回答

1

您可以在Order中使用static embedded。請參閱this

+0

這可以用於其他@Embeddable用例,但不會解決@ ElementCollection/@ CollectionTable。 – wrschneider 2013-05-03 02:15:26

+0

GORM可以爲你提供你想要的關係我想,如果我沒有錯。我在這裏寫下一個用例(http://pastebin.com/xwd4augW),你可以參考它。目標是動態填充示例所做的嵌入式子項列表。讓我知道我誤解了你的問題。 – dmahapatro 2013-05-03 04:35:24