Ich möchte meine DTO in meinem @RepositoryRestController
mit der Javax-Annotation @Valid
validieren. jedoch nicht @RepositoryRestController
derzeit nicht unterstützt @Valid
wie Sie in diesem Ticket sehen: https://jira.spring.io/browse/DATAREST-593Validierung in @RepositoryRestController
Wenn ich ein verwenden @RestController
meine @Valid
gut, dann nicht mehr funktionieren würde meine @RepositoryRestResource
jedoch funktionieren würde. Ich müsste manuell eine Methode in meine @RestController
für jede Funktionalität schreiben (findOne(), findAll() etc.). Zur Zeit kann ich einfach die @RepositoryRestResource
mit einer Projektion für die Methoden findAll() usw. verwenden.
Wie validiere ich die DTOs in einer @RepositoryRestController
?
Repository:
@RepositoryRestResource(excerptProjection = ChipProjection.class)
public interface ChipRepository extends JpaRepository<Chip, Long> {
}
Projektion:
@Projection(name = "summary", types = Chip.class)
public interface ChipProjection {
Long getId();
ChipIdentifier getChipIdentifier();
}
Controller:
@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;
}
keinen Erfolg mit Valid Anmerkung? –