У меня есть шаблон композиции, где родительский объект имеет список дочерних объектов, например Order и LineItem.Grails/GORM - эквивалентно JPA @ElementCollection
Он ведет себя аналогично каскадированию с помощью сирот-сирот, но дочерние объекты являются @Embeddables вместо @Entities и не получают собственных идентификаторов - они всегда управляются через их родительский объект.
В JPA я мог бы сделать что-то вроде этого, чтобы гарантировать, что каждый раз, когда я сохраняю заказ, сбор LineItems синхронизации, включая удаление удаленных элементов:
public class Order {
@ElementCollection
@CollectionTable(...)
private Set<LineItem> items;
}
В Grails, какой эквивалент?
Я могу сделать hasMany с каскадом all-delete-orphan, но предпочел бы, если бы у дочерних объектов не было собственных идентификаторов (в основном это не сущности).
Это будет работать для других случаев использования @Embeddable, но не адресует @ ElementCollection/@ CollectionTable. – wrschneider
GORM может предоставить вам отношения, которые вы хотели, я думаю, если я не ошибаюсь. Я написал здесь прецедент (http://pastebin.com/xwd4augW), вы можете это сослаться. Задача состоит в том, чтобы динамически заполнять список встроенных дочерних элементов, что и в примере. Пусть знаю, что я неправильно понял ваш вопрос. – dmahapatro