2013-05-02 5 views
1

У меня есть шаблон композиции, где родительский объект имеет список дочерних объектов, например Order и LineItem.Grails/GORM - эквивалентно JPA @ElementCollection

Он ведет себя аналогично каскадированию с помощью сирот-сирот, но дочерние объекты являются @Embeddables вместо @Entities и не получают собственных идентификаторов - они всегда управляются через их родительский объект.

В JPA я мог бы сделать что-то вроде этого, чтобы гарантировать, что каждый раз, когда я сохраняю заказ, сбор LineItems синхронизации, включая удаление удаленных элементов:

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

    private Set<LineItem> items; 

} 

В Grails, какой эквивалент?

Я могу сделать hasMany с каскадом all-delete-orphan, но предпочел бы, если бы у дочерних объектов не было собственных идентификаторов (в основном это не сущности).

ответ

1

Вы можете использовать static embedded в Order. См. this.

+0

Это будет работать для других случаев использования @Embeddable, но не адресует @ ElementCollection/@ CollectionTable. – wrschneider

+0

GORM может предоставить вам отношения, которые вы хотели, я думаю, если я не ошибаюсь. Я написал здесь прецедент (http://pastebin.com/xwd4augW), вы можете это сослаться. Задача состоит в том, чтобы динамически заполнять список встроенных дочерних элементов, что и в примере. Пусть знаю, что я неправильно понял ваш вопрос. – dmahapatro

Смежные вопросы