如何使用Spring Rest和分页及排序存储库返回400响应

如何使用Spring Rest和分页及排序存储库返回400响应,spring,rest,Spring,Rest,我有这个存储库 @RepositoryRestResource(collectionResourceRel = "party_category", path = "party_category") public interface PartyCategoryRepository extends PagingAndSortingRepository<PartyCategory, Integer> { } 我得到的错误是500,而不是400: { "timestamp": 143861

我有这个存储库

@RepositoryRestResource(collectionResourceRel = "party_category", path = "party_category")
public interface PartyCategoryRepository extends PagingAndSortingRepository<PartyCategory, Integer>
{
}
我得到的错误是500,而不是400:

{
"timestamp": 1438616019406,
"status": 500,
"error": "Internal Server Error",
"exception": "javax.validation.ConstraintViolationException",
"message": "Validation failed for classes[main.entity.party.PartyCategory] during persist time for groups [javax.validation.groups.Default, ]\\\nList of constraint violations:[\\\n\\\tConstraintViolationImpl{interpolatedMessage='no puede estar vacío', propertyPath=name, rootBeanClass=class main.entity.party.PartyCategory, messageTemplate='{org.hibernate.validator.constraints.NotBlank.message}'}\\\n]",
"path": "/party_category"
}
我该怎么做才能得到这样友好的回应

{
"field":"name",
"exception":"Field name cannot be null"
}

如何返回400 http代码?

您似乎需要将特定异常映射到http状态:

@Controller
public class ExceptionHandlingController {

    // Convert a predefined exception to an HTTP Status code
    @ResponseStatus(value=HttpStatus.BAD_REQUEST, reason="Data integrity violation")  // 409
    @ExceptionHandler(javax.validation.ConstraintViolationException.class)
    public void error() {
        // Nothing to do
    }
}
@Controller
public class ExceptionHandlingController {

    // Convert a predefined exception to an HTTP Status code
    @ResponseStatus(value=HttpStatus.BAD_REQUEST, reason="Data integrity violation")  // 409
    @ExceptionHandler(javax.validation.ConstraintViolationException.class)
    public void error() {
        // Nothing to do
    }
}