2013-05-02 74 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