Вот пример.
У меня есть метод, который выполняет два действия. Я хочу, чтобы они были бы выполнены в транзакции.
void setStatusDeclinedAndRefund() {
// sets Order status to DECLINED
// refund money to user's balance
}
Но вот проблема, если я этот код просто добавлю в DAO impl, я нарушаю паттерн DAO? Там же теперь не только CRUD методы будут, а еще и этот.
Если я захочу разместить этот метод в сервисе и просто вызвать два раза UPDATE методы из DAO, то как мне выполнить это в транзакции? Даже если я в сервисе получу connection, что дальше? Передавать connection в DAO?
Мне очень нужна Ваша помощь, никто не может ответить на это. Конечно, просто засунуть метод в DAO это самое легкое решение, но будет ли оно нормально воспринято на review, не понимаю.