我想用我的@RepositoryRestController
中的我的DTO進行驗證,並帶有javax註釋@Valid
。 然而@RepositoryRestController
目前不支持@Valid
,你可以在此看到門票:https://jira.spring.io/browse/DATAREST-593@RepositoryRestController中的驗證
如果我使用一個@RestController
我@Valid
會工作正常,但是後來我@RepositoryRestResource
不再工作。我需要在我的@RestController
中爲每個功能(findOne(),findAll()等)手動編寫一個方法。目前,我只能使用@RepositoryRestResource
和Projection作爲方法findAll()等。
如何驗證@RepositoryRestController
中的DTO?
存儲庫:
@RepositoryRestResource(excerptProjection = ChipProjection.class)
public interface ChipRepository extends JpaRepository<Chip, Long> {
}
投影:
@Projection(name = "summary", types = Chip.class)
public interface ChipProjection {
Long getId();
ChipIdentifier getChipIdentifier();
}
控制器:
@RepositoryRestController
public class ChipRestController {
@Autowired
ChipService chipService;
@RequestMapping(value = "/chips", method = RequestMethod.POST)
public @ResponseBody ChipHelper saveChip(@Valid @RequestBody ChipHelper chip, BindingResult result){
List<FieldError> errors = result.getFieldErrors();
//errors is always empty, @Valid not working
chipService.save(chip);
return chip;
}
}
ChipHelper:
@Data
public class ChipHelper {
@NotNull
private Long id;
@NotNull
@Size(min = 10)
private String identifier;
}
與有效註解的成功? –