Add a Custom message for the Unique Constraints in hibernate

前端 未结 3 1099
情歌与酒
情歌与酒 2021-01-06 07:22
@Entity @Table(name=\"users\",uniqueConstraints = {@UniqueConstraint(columnNames = {\"email\"})})
public class User implements Serializable {
    @Column(unique = tr         


        
3条回答
  •  既然无缘
    2021-01-06 07:43

    I resolve similar problem in Spring Boot I Hope It will help u.

    @ControllerAdvice
    public class ControllerExceptionHandler extends ResponseEntityExceptionHandler {
    
    @ExceptionHandler(value = {DataIntegrityViolationException.class})
    protected ResponseEntity handleConflict(DataIntegrityViolationException ex, WebRequest request) {
        JSONObject result = new JSONObject();
        result.appendField("result", false);
        String errorMessage = "";
    
        org.hibernate.exception.ConstraintViolationException exDetail =
                (org.hibernate.exception.ConstraintViolationException) ex.getCause();
    
        errorMessage = fieldCnvrt(exDetail.getConstraintName()) + " birden fazla aynı değer içeremez!";
    
    
        result.appendField("message", errorMessage);
        return ResponseEntity.status(HttpStatus.NOT_ACCEPTABLE).body(result);
    }
    
    private String fieldCnvrt(String field) {
        switch (field) {
            case "username":
                field = "Kullanıcı Adı";
                break;
            case "email":
                field = "Email";
                break;
            case "short_name":
                field = "Kısaltımış Ad";
                break;
            case "name":
                field = "Ad";
                break;
        }
    
        return field;
    }
    

    }

提交回复
热议问题