Как вызвать 2 перегруженных метода в одной транзакции? - PullRequest
0 голосов
/ 24 июня 2019

Два метода вызываются в разных местах контроллера: info - это класс модели, который имеет 4 поля.

StudentInfo info = new StudentInfo(1,2,3,4);
studService.userUpdate(info);

Здесь мы вставляем записи в dao с помощью процедуры, и здесь никаких изменений не производится.

Теперь мы добавили еще 4 поля в класс информационной модели.

StudentInfo info = new StudentInfo(5,6,7,8);
studService.userUpdate(info, flag);

Здесь я хочу, чтобы при методе 1-8 все поля вставлялись только в одну запись. Например, когда вызывается первый метод, он вставляет 4 поля, а при вызове второго - оставшиеся 4 в той же записи. Как мне этого добиться? Можно ли использовать @transactional там?

1 Ответ

0 голосов
/ 24 июня 2019

Да!@Transactional может использоваться, но это гарантирует транзакцию уровня метода, т.е. все внутри метода выполняется или ничего.Следовательно, он все еще может быть потенциальным нетранзакционным кодовым блоком.

Этот подход неверен, хотя вы могли бы скорее объединить эти два объекта в один и затем выполнить вставку.

Мы должны делать неправильный код, потому что у нас есть функция, которая всегда идет за простым и логичным кодом.

...