Не правильно, делать валидацию в сеттере, валидация это слой бизнес логики приведу
простой пример есть пользователь у него есть поле возраст при регистрации мы валидируем его что бы н момент регистрации пользователь был старше 18 лет.
А например админ когда создает пользователей мы это пропускаем. Если мы воткнем валидацию в сеттер то нам придется объяснять объекту в каком сценарии он сейчас находится. Это протекание абстракции когда объект знает лишнее.
у классов есть внутренние состояния. Например класс который загружает файл с диска и сжимает его например, может хранить хендлер на файл. И очень было бы странно давать всем возможность его изменять.
Вы сейчас с кем спорите. Я указал на 2 самых вероятных сценария. Понятное дело, что статика тоже может не работать, а сайт с бэком может частично работать. Но слыша стук копыт не думай о зебрах. Вы сейчас даже не зебр вспомнили а единорогов.
Ну схема проста. Или вы идете по низу рынка и заинтересовываете работодателя этим. Или набираете релевантный опыт для работодателя. Это могут пет проекты, фриланс, даже дипломная работа для студентов. Проблема вступающих в айти что они хотят 100500 сотен нефти в секунду, а опыта не имеют.
Да тут все понятно вроде.
1. Стартует транзакция.
2. Вы лочите записи внутри транзакции. все изменения внутри транзакции будут видны только после ее примения.
далее уже работаете и коммитите. Так вот не кто не мешает в момент пока вы работаете работать с данными.
Тут как мне кажется лочить надо до. запуска транзы.