У меня ниже метод обслуживания, где company
данные создаются.Company
имеет 1:1
отношение с CompanyType
, которое имеет фиксированный набор значений, и больше значений не могут быть вставлены.Это таблица только для чтения.Таким образом, для метода ниже, я передаю неправильное (которое не существует в БД) значение company
.Естественно, весна будет брошена InvalidDataAccessApiUsageException
.Но я заметил, что блок catch вызывается дважды.Разве это не странное поведение?
public Company create(Company company) {
Company createdCompany = null;
try {
company.setUser(userDao.findByEmail("abc@gmail.com")
.orElseThrow(() -> new AccessDeniedException("You are not authenticated for this operation")));
createdCompany = companyDao.save(company);
} catch (InvalidDataAccessApiUsageException ex) {
// will be thrown if the company-type provided doesn't exist.
// LOGGER.error(ex.getMessage());
LOGGER.error("*********************************************************");
throw new BadRequestException("Selected company type/category doesn't exist");
}
return createdCompany;
}
logs
2019-06-06 03:03:27 ERROR c.o.s.i.CompanyServiceImpl - *********************************************************
2019-06-06 03:03:27 ERROR c.o.s.i.CompanyServiceImpl - *********************************************************