В настоящее время я использую openSession(), начинаю и фиксирую транзакцию в методе с классическими дао и слоями услуг и сохраняю/обновляю/удаляю несколько объектов в нем. Если какая-либо ошибка существует, я уверен, что никакого сохранения/обновления в этом методе не было сделано.Spring getCurrentSession() и сохранить объект sevaral
Возможно ли сохранить более одного объекта в методе, вызванном с помощью аннотации @Transactional через getCurrentSession(), и это безопасно, если это гарантирует, что все объекты в этом методе сохранены/обновлены или какие-либо еще не выполнены? И если возможно, как я могу использовать откат в этом методе?
Вы должны использовать getCurrentSession вместо открытия нового сеанса каждый раз. Вы можете сохранить столько объектов, сколько хотите, когда у вас есть сеанс. Если вы хотите, вы можете заменить все строки базы данных. –
Например, если я попытаюсь удалить все строки (или обновить их и удалить некоторые) в методе через getSurrentSession(), он не остановится после удаления нескольких строк (обновленный, но не удаленный), если возникнет какая-либо проблема или соединение потерял, не так ли? Я должен быть уверен, что все изменения сделаны в этом методе. – devrim
Ваш способ сказать, что проблема странная, но могу сказать, что вы можете выполнять несколько операций. –