Я пытаюсь сохранить список сущностей в Oracle Db.
@Transactional
public void save() {
//logick
for (QuittanceType quittanceType : quittance) {
quittancesService.parseQuittance(quittanceType);
}
//logick
}
На каждом шаге я вызываю этот метод:
@Transactional
@Override
public void parseQuittance(QuittanceType quittance) {
try {
//logick create payToChargeDb
paymentToChargeService.saveAndFlush(payToChargeDb);
} catch (Exception e) {
log.warn("Ignore.", e);
}
}
и метод
@Override
public PaymentsToCharge saveAndFlushIn(PaymentsToCharge paymentsToCharge) {
return paymentToChargeRepository.saveAndFlush(paymentsToCharge);
}
Когда я пытаюсь сохранить сущность с ограничением Мой откат основной транзакции и Iget stacktrace:
Caused by: java.sql.BatchUpdateException: ORA-02290: CHECK integrity constraint violated(MYDB.PAYMENTS_TO_CHARGE_CHK1)
Но я хочу пропустить не успешные объекты и сохранить успех.Я помечаю свой метод
@Transactional(propagation = Propagation.REQUIRES_NEW)
, и он выглядит так:
@Transactional
@Override
public void parseQuittance(QuittanceType quittance) {
try {
//logick create payToChargeDb
paymentToChargeService.saveAndFlushInNewTransaction(payToChargeDb);
} catch (Exception e) {
log.warn("Ignore.", e);
}
}
и
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Override
public PaymentsToCharge saveAndFlushInNewTransaction(PaymentsToCharge paymentsToCharge) {
return paymentToChargeRepository.saveAndFlush(paymentsToCharge);
}
Но когда я пытаюсь сохранить сущность с ограничением, я не получаю исключенияи не входить в блок catcj.просто перестаньте работать отладка и приложение продолжит работать.Я не получаю никаких ошибок.и как будто происходит откат