List of usage examples for org.hibernate.exception ConstraintViolationException getConstraintName
public String getConstraintName()
From source file:pl.surreal.finance.transaction.resources.AccountResource.java
License:Apache License
@POST @UnitOfWork//from w ww.jav a 2s .c o m @ApiOperation(value = "Create new account") @ApiResponses(value = { @ApiResponse(code = 400, message = "Contraint violation") }) public AccountApi createAccount( @ApiParam(value = "new account object", required = true) AccountApi accountApi) { Account accountToCreate = mapApiToDomain(accountApi, null); Account account; try { account = accountDAO.create(accountToCreate); } catch (ConstraintViolationException ex) { throw new BadRequestException("Constraint violation on " + ex.getConstraintName()); } accountApi.setId(account.getId()); return accountApi; }
From source file:pl.surreal.finance.transaction.resources.CardResource.java
License:Apache License
@POST @UnitOfWork//ww w .j a v a 2s.c om public CardApi createCard(CardApi cardApi) { Card cardToCreate = mapApiToDomain(cardApi, null); Card card; try { card = cardDAO.create(cardToCreate); } catch (ConstraintViolationException ex) { throw new BadRequestException("Constraint violation on " + ex.getConstraintName()); } cardApi.setId(card.getId()); return cardApi; }
From source file:py.una.pol.karaku.controller.KarakuAdvancedController.java
License:Open Source License
/** * {@inheritDoc}//from ww w . ja va 2 s. c o m * <p> * Esta implementacin captura las excepciones del tipo * {@link UniqueConstraintException} y las excepciones del tipo * {@link DataIntegrityViolationException} y intenta generar un mensaje de * error pertinente. * </p> * */ @Override public boolean handleException(final Exception e) { if (e instanceof UniqueConstraintException) { UniqueConstraintException unique = (UniqueConstraintException) e; if (unique.getFields().size() == 1) { String field = unique.getFields().get(0); controllerHelper.addWarnMessage(field, getMessage("FIELD_DUPLICATE"), getMessage("FIELD_DUPLICATE_DETAIL")); } if (unique.getFields().size() > 1) { controllerHelper.addGlobalWarnMessage(getMessage("FIELDS_DUPLICATED"), getMessage("FIELDS_DUPLICATED_DETAIL", unique.getFields().toArray())); } return true; } else if (e instanceof DataIntegrityViolationException) { // TODO: buscar una solucion mas generica para este caso, de // identificar excepciones causadas por constraints de foreign keys DataIntegrityViolationException integrityException = (DataIntegrityViolationException) e; /* controlar que su causa sea del tipo constraintException */ if (integrityException.getCause() instanceof ConstraintViolationException) { /* controlar que el constraint sea de fk */ ConstraintViolationException constraintException = (ConstraintViolationException) integrityException .getCause(); if (constraintException.getConstraintName().startsWith("fk")) { controllerHelper.createGlobalFacesMessage(FacesMessage.SEVERITY_WARN, "ENTITY_REQUIRED_DETAIL"); return true; } } } return false; }
From source file:py.una.pol.karaku.util.UniqueHelper.java
License:Open Source License
/** * Si es una exception {@link ConstraintViolationException} que viene de la * base de datos, entonces recupera informacin valiosa y genera una * Excepcin {@link UniqueConstraintException}. * // w w w. j a v a 2s . c o m * @param exception * Excepcion genrica * @param clazz * Clase de la entidad duea de los atributos * @return {@link UniqueConstraintException} si es el caso, o la misma * Excepcin que se recibe */ public Exception createUniqueException(final Exception exception, final Class<?> clazz) { if (exception instanceof ConstraintViolationException) { ConstraintViolationException cve = (ConstraintViolationException) exception; String constraint = cve.getConstraintName(); Map<String, UniqueRestrintion> constrainsName = getConstrains(clazz); if (constrainsName.get(constraint) != null) { UniqueRestrintion ur = constrainsName.get(constraint); return new UniqueConstraintException(ur); } } return exception; }