весенняя проверка по составу - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть следующие классы данных:

data class User (
    @field:NotEmpty
    val firstName: String?
    @field:NotEmpty
    val lastName: String?
)

data class Expert (
    @field:NotEmpty
    val name: String?
    @field:NotNull
    val contact: User?
)

И я хотел бы использовать мою конечную точку API отдыха для создания эксперта с проверкой весны:

@RestController
@RequestMapping("/api/experts")
class ExpertController(private val expertService: ExpertService) {

    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    fun create(@Valid @RequestBody dto: Expert) = expertService.create(dto)

}

Проверка по полям name и contact работает нормально. Но проверка по полям firstName и lastName (класс User) не работает. Это нормальное поведение? Я не могу использовать проверку композиции? Зачем? Или я что-то упустил?

1 Ответ

0 голосов
/ 03 сентября 2018

Для проверки User, если он содержится в Expert, вам необходимо добавить к нему аннотацию @Valid, чтобы Spring Validator знал, что нужно продолжать проверку, в противном случае он остановится.

Попробуйте это (не проверено):

data class Expert (
    @field:NotEmpty
    val name: String?

    @field:NotNull
    @field:Valid
    val contact: User?
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...