При использовании Object Relational Mapper, как я могу создавать новые сущности внутри другой сущности и как я могу их сохранить? Я использую Doctrine 2 (PHP), но полагаю, что это одинаково хорошо применимо и к Hibernate (Java) и NHibernate (C #).
Например, O имеет сущность Order
, которая имеет метод setCompleted()
. Моя бизнес-логика гласит, что всякий раз, когда заказ выполнен, создается новая сущность Product
. Обратите внимание, что Order
и Product
в настоящее время не связаны (должны ли они быть?). Для меня самое логичное место, чтобы поместить эту бизнес-логику в метод setCompleted()
. Но как мне сказать ORM, что существует новая сущность, которая будет сохраняться? Менеджер сущностей не доступен внутри сущности.
Или я неправильно подхожу к этой проблеме и должен ли я реализовать ее другим способом?