потому что вы пытаетесь поймать ConstraintViolationException
пока вы получаете DataException
.
Попробуйте использовать код ниже:
public Response saveAll(PurchaseOrderHeaderDto purchaseOrderHeaderDto) {
try {
s = sf.openSession();
tx = s.beginTransaction();
PurchaseOrderHeader orderDo = importDao(purchaseOrderHeaderDto);
for (int i = 0; i < orderDo.getPurchaseItemList().size(); i++) {
orderDo.getPurchaseItemList().get(i).setHeaderDetails(orderDo);
s.save(orderDo.getPurchaseItemList().get(i));
}
response.setStatus(200);
response.setMessage("succesfull");
tx.commit();
} catch (Exception e) {
System.out.println(e.getMessage());
response.setStatus(500);
response.setMessage("unsuccesfull");
tx.rollback();
} finally {
s.close();
}
return response;
}
это поймает каждое исключение, вы можете поработать над этим позже, но оно должно работать