А где тут откат транзакции рализован так и не понял
public void joinData() throws CorruptedDataException {
if (allLines.containsAll(forRemoveLines)){
allLines.removeAll(forRemoveLines);
}else {
allLines.clear();
throw new CorruptedDataException();
}
}
Grimax
25 уровень
А где тут откат транзакции рализован так и не понял?
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
9 мая 2019, 18:14
allLines.clear() и выброс эксепшена.
Принцип транзакционности это движение от одного валидного состояния в другое.
С карты деньги сняло, покупку в руки не дали, это неверно.
Здесь проверяется в условии корректность данных для проведения операции, если нет, то тогда своеобразный роллбек (откат) операции
0
Grimax
9 мая 2019, 19:38
Откат это когда объект возвращается в состояние которое было до начала транзакции, а тут очистка списка
0
Justinian Judge в Mega City One Master
9 мая 2019, 20:07решение
Не знаю, как у тебя.
Но в моем решении первая строка:
public static List<String> allLines = new ArrayList<String>();
Поэтому противоречий не вижу.
Список был пустой изначально, он не наш главный объект по контексту задачи, он инструмент, это временный объект который живет лишь на протяжении жизни самого класса. Если бы программа была более полной, то была бы дальше выгрузка содержимого списка в файл. Или передача по сети, или сэйв в базу .
А так файл останется прежним, в базу ничего не пойдет, по сети никуда не передастся.
Поскольку пошел откат до первоначального состояния на момент исполнения программы, при этом все данные в файлах остались теми же.
Если бы на старте программы у нас был заполненный список allLines, а мы бы в средине его просто очищали, тогда да.
Но мы начали с пустого списка и откатываемся к пустому списку
+2
Grimax
10 мая 2019, 13:11
Спасибо большое за такой развернутый ответ, очень хочется уже с самого начала писать код приближенный к реальной работе но видимо раз я тут мне это пока не по силам)
+1
Justinian Judge в Mega City One Master
10 мая 2019, 15:59
Отчего же, вполне по силам, ты в первых рядах среди тех кто ближе к этому, так что молодец!
Ты задаешь вопросы, ищешь, думаешь , слушаешь, это очень ценные качества и поверь они есть не у всех.
Верь в себя и продолжай, ты на верной дороге, успехов!
0
Grimax
10 мая 2019, 16:46
Спасибо за добрые слова, мы мало их слышим и еще меньше говорим но как много они могут сделать ...)
+1