В моем приложении у меня есть несколько комментариев @Transactional
о разных методах.Несколько аннотаций Spring @Transactional в одном приложении?
Используют Crud Repository
для удаления в моей базе данных. Мне интересно на , на каком этапе эти удаления выполняются, и мне нужны все аннотации @Transactional
?
Например, 2 удалить methods
, которые позже названный в façade method
, метод фасад затем вызывается в runner
:
1. Метод 1:
@Transactional
public void deleteFromSchemaOne(){
}
1. Способ 2:
@Transactional
public void deleteFromSchemaTwo(){
}
2. Вызов этих 2 методов в методе фасада:
@Transacational
public void deleteFromAllSchemas(){
deleteFromSchemaOne();
deleteFromSchemaTwo();
}
3. Вызывать метод фасада в бегуна
@Transactional
public void run(String... args) throws Exception {
service.deleteFromAllSchemas();
}
То, что я хотел бы знать:
На какой стадии будут удалены мои ? Будет ли это, когда метод будет завершен в Runner?
РЕДАКТИРОВАТЬ:
метод Фасад с петлей:
public void deleteFromAllSchemas() {
for(int i = 0; i < list.size(); i++){
deleteFromSchemaOne();
deleteFromSchemaTwo();
}
}
В основном то, что я хочу сделать, это убедиться, что метод deleteFromAllSchemas() является transactional- то есть все, что в схеме один и два сусло удаляться или вообще ничего, как я могу это сделать? Спасибо за вашу помощь. – java123999
Это выполняется с помощью '@ Transactional' в' deleteFromAllSchemas() '.Если произошла ошибка, она откатит все изменения, сделанные в 'deleteFromSchemaOne()' и 'deleteFromSchemaTwo()'. Вы должны действительно читать транзакции. Они не то, что вы можете просто надеяться получить право или «учиться на работе». – Kayaman
Это правильно. Я хотел бы добавить, что в целом транзакции должны быть как можно короче. Поэтому, если эти удаленные базы данных не зависят друг от друга (допустим, если кто-то не работает, вам нужно отменить всю транзакцию), вы должны аннотировать только два метода удаления. Это гарантирует, что каждое удаление будет выполняться в отдельной транзакции. Если они зависят друг от друга. Аннотируйте метод, который их вызывает, и, возможно, аннотируют методы удаления с помощью '@Transactional (распространение = распространение). –