Управление транзакциями в большом приложении - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть такая ситуация, как в Java-приложении, например: «Если есть запись в таблице и одновременно есть запрос на удаление, также как мы будем обрабатывать такой сценарий».

Может кто-нибудь предложитьмне о том, как справиться с такими проблемами, которые могут работать как на небольших, так и на больших приложениях?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Ваш вопрос очень широкий, и это так.

Я немного сузю проблему, предполагая, что вы используете пружину (ботинок).Если так, то это очень легко ответить.Используйте аннотацию @Transactional над методами, которые содержат логику для сохранения или удаления.И включите необходимые библиотеки of.

С помощью методов, аннотированных таким образом, весеннее (загрузочное) приложение гарантирует, что обе операции будут выполняться в порядке, необходимом для поддержания согласованной базы данных.

Если возникает ошибка, вы можете обработать ее на более высоких уровнях вашего приложения или просто показать ошибку пользователю.

0 голосов
/ 21 декабря 2018

Я думаю, что вопрос заключается в том, как обрабатывать UI / UX, когда происходит такой сценарий.Помимо проблемы параллелизма, описанной в вопросе, могут быть и другие сценарии, например, когда пользователь 1 открывает страницу редактирования пользователя, в то же время пользователь 2 удаляет эту запись из другого имени входа.Что должно произойти, когда user1 пытается сохранить запись?

Вам, вероятно, следует вернуть пользователю сообщение об ошибке с указанием деталей ошибки (запись удалена, обновлена ​​кем-то другим и т. Д.).

...