Есть тяжёлый бизнес объект, который сейчас я сохраняю через сервисы. Под бизнес объектом я понимаю сущность, которая хранит в себе записи из разных таблиц базы данных, например фильм: названии - в таблице "фильмы", автор - в таблице "юзер", лайки в таблице "likes". Все вместе это бизнес объект.
Сейчас, чтобы его модифицировать или сохранить, я вызываю сервис, на вход которого отправляю этот объект.
Хочется, чтобы в начале выполнения приложение открывалась транзакция, поднимался объект, модифицирвался, а перед тем, как отправить это дело на ui, транзакция закрывалась и объект коммитился в базу без явного вызова сервиса.
Понятно, что можно сделать абстрактный класс, но есть что-то более профессиональное для таких целей?