#java #spring-boot #spring-data-jpa #spring-batch #transactionmanager
Вопрос:
Если я переопределю и использую JpaTransactionManager
с Spring Batch
, это повлияет Spring Data JPA
? В чем разница между Spring Batch Transaction Manager
vs Spring Data JPA
? Есть ли между ними какая-то связь? И если я использую следующий компонент диспетчера транзакций, повлияет ли это на репозитории Spring Data JPA и операции CRUD каким-либо образом, я имею в виду плохой способ?
@Autowired
private DataSource dts;
@Bean
@Primary
@Override
public PlatformTransactionManager getTransactionManager() {
JpaTransactionManager jpa = new JpaTransactionManager();
jpa.setDataSource(dts);
return jpa;
}
Комментарии:
1. Интересный вопрос. Я должен спросить, попробовали ли вы это сделать. Вы пытались выполнить некоторые запросы, чтобы узнать, изменилось ли поведение каким-либо образом? Я не совсем понимаю, почему вам пришлось его отменить
2. На самом деле я должен переопределить его, потому что я использую операцию JPA CRUD внутри пакетного процесса. Поэтому, если я не указал
JpaTransactionManager
save
, что это не работает, и он выдает ошибку, транзакция не была предоставлена… потому что она используется по умолчаниюDatasourceTransactionManager
.3. Что делать, если вы попытаетесь добавить аннотацию @Transactional в свой метод сохранения?