Здесь есть большой недостаток дизайна, но у меня проблемы с его устранением:
Потребность бизнеса немного сложна, поэтому я постараюсь сделать это проще.
У нас есть таблица с покупками и таблица для возвратов. Когда производится возврат, мы должны найти соответствие, возвращающее самую старую покупку в БД, и записать это в таблицу «возврат применен».
Итак, когда я вставляю Возврат, в рамках этой транзакции мне нужно применить возврат к записи о покупке.
В нынешнем виде у нас есть служба, которая вызывает хранилище для вставки. Служба должна знать, что является ключом этой вставленной записи, чтобы она могла завершить транзакцию, вставив «примененную» запись с использованием этого ключа.
Мы в основном застряли, потому что, насколько я понимаю, репозиторий не должен возвращать такого рода данные. Разве это не противоречит идее о том, что хранилище является коллекцией?
Какая альтернатива?
РАЗЪЯСНЕНИЯ:
У нас есть таблица покупок, таблица возврата и таблица Applied
Применяемая таблица выглядит следующим образом
buyId returnId qtyReturned
Поэтому, когда возврат вставлен Мне нужен идентификатор покупки (определяется некоторыми бизнес-правилами) и идентификатор недавно вставленного возврата.