тогда как я получаю ConstraintViolationException во время вызовов API публикации и обновления. снова и снова вызов выполняется в методе globalExceptionHandler класса ExceptionHAndler, где отображается исключение ограничения ограничения.
PostController.java
Код: Выделить всё
@RestController
@RequestMapping("/api/posts")
public class PostController {
@Autowired
private PostService postService;
//rest API endpoint to post http:localhost:8080/api/posts
@PostMapping
public ResponseEntity
createPost(@Valid @RequestBody PostDTO postDTO){
return new ResponseEntity(postService.createPost(postDTO),HttpStatus.CREATED);
}
@PostMapping(path = "/multiple")
public ResponseEntity createMultiplePosts(@Valid @RequestBody List postDTO){
return new ResponseEntity(postService.createMultiplePosts(postDTO),HttpStatus.CREATED);
}
Posts.java
Код: Выделить всё
@Entity
@Table(name = "posts", uniqueConstraints = {@UniqueConstraint(columnNames = {"titles"})})
public class Posts {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name = "titles")
@NotEmpty
@Size(min = 2,message = "post title should contain atleast 2 character")
private String title;
@Column(name = "description")
@NotEmpty
@Size(min = 10,message = "post description should contain atleast 2 character")
private String description;
@Column(name = "content")
@NotEmpty
private String content;
Код: Выделить всё
@ControllerAdvice
public class GlobalException extends ResponseEntityExceptionHandler {
private static final Logger logger = LoggerFactory.getLogger(GlobalException.class);
@ExceptionHandler(ResouceNotFoundException.class)
ResponseEntity PostNotFoundExceptionHandler(ResouceNotFoundException exception, WebRequest webRequest){
ErrorDetails errorDetails =new ErrorDetails(new Date(),exception.getMessage(),webRequest.getDescription(false));
return new ResponseEntity(errorDetails,HttpStatus.NOT_FOUND);
}
@ExceptionHandler(BlogApiException.class)
ResponseEntity CommentNotFoundExceptionHandler(BlogApiException exception, WebRequest webRequest){
ErrorDetails errorDetails =new ErrorDetails(new Date(),exception.getMessage(),webRequest.getDescription(false));
return new ResponseEntity(errorDetails,HttpStatus.NOT_FOUND);
}
@Override
// @ExceptionHandler(MethodArgumentNotValidException.class)
protected ResponseEntity handleMethodArgumentNotValid(
MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatusCode status, WebRequest request){
logger.info("inside handleMethodArgumentNotValid class");
Map errorsMap =new HashMap();
ex.getBindingResult().getAllErrors().forEach((error)->{
String fieldNameString = ((FieldError)error).getField();
String messageString = error.getDefaultMessage();
errorsMap.put(fieldNameString, messageString);
});
return new ResponseEntity(errorsMap,HttpStatus.BAD_REQUEST);
}
@ExceptionHandler(Exception.class)
ResponseEntity GlobalExceptionHandler(Exception exception, WebRequest webRequest){
logger.info("inside GlobalExceptionHandler class");
ErrorDetails errorDetails =new ErrorDetails(new Date(),exception.getMessage(),webRequest.getDescription(false));
return new ResponseEntity(errorDetails,HttpStatus.BAD_REQUEST);
}
}
Пожалуйста, помогите мне понять почему я получаю это исключение, пробовал играть с версиями зависимости проверки стартера весенней загрузки.
в настоящее время используется версия 3.0.4 зависимости проверки стартера
Версия Java 17.0.7
Подробнее здесь: https://stackoverflow.com/questions/761 ... dexception