Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Отношение сущностей в JPA


Автор: oson 4.12.2012, 18:46
Подскажите пожалуйста.
Есть например сущность Person.
И есть сущность Offer - предложение, которое делают этому Person.
Например по логике Person не должен знать предложения. То есть Person сущность постоянная, а Offer - сущности 
постоянно меняются.
То есть Offer содержит ссылку personId, а у Person не имеет ссылки на offer.
И тут получается такая ситуация - если удаляем Person, то у нс остаются подвешенные Offer,потому что в мэппинге Person 
мы не можем указать orphanRemoval = true.

Вопрос - если уж по логике предметной области Person не должен знать про Offer - нужно ли следовать так точно в мэппинге этому и делать связь однонаправленной, если это приведет к таким вот абсурдным ситуациям - ничейные Offer при удаленном Person?


Автор: AntonSaburov 4.12.2012, 18:53
Значит удалять Person нельзя, т.к. на него есть Offer. 
Вообще удалять такого рода данные (справочники) дело неблагодарное - лучше делать неактивным.

Автор: oson 4.12.2012, 19:59
То есть обрабатывать на другом уровне.
То есть например PersonService имеет метод delete(Person) - а внутри он фактически ставит поле deleted у Person в true и находит по этому personId все Offerы и тоже ставит поле deleted у них в true. Типа так?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)