@ Valid для длинных типов данных не работает для обязательной проверки - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть нижеуказанный входной класс, и когда я запускаю API без параметра 'Interaction Id' на входе, я ожидаю сообщение об ошибке валидации «Interaction ID не может быть пустым», но проверка проходит, и я думаю, это может быть связано с тем, чтоВзаимодействие по умолчанию имеет значение 0.

Может кто-нибудь, пожалуйста.помогите применить эту проверку к параметру 'long', если он не задан во входных данных?

с параметром @NotEmpty для параметра customerId, он работает, как и ожидалось.Использование @NotEmpty для длинного параметра «interfaceId» вызывает другую ошибку, которую нельзя использовать @notempty для длинного.

public class Input {

@NotEmpty(message = "customerId cannot be empty")
private String customerId;

@Valid
@NotNull(message = "interactionId cannot be empty")
private long interactionId;
 // setters and getters

}

мой класс контроллера: @RestController открытый класс Controller {

@PostMapping(value="/detailed-customer-transaction", produces = 
MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<Object> detailTransactions(@Valid @RequestBody Input 
params)
{
    return new ResponseEntity<>(Dao.detailTransactions(params), HttpStatus.OK);
}

Указанные выше проблемы устраняются после замены на Long вместо Long.

Query # 2 Мне нужна другая помощь.У меня есть строковый параметр ввода, который принимает формат даты и времени в следующем формате.Учитывая его строковый параметр, как я могу проверить для образца = "гггг-ММ-дд'Т'ХХ: мм: сс.ССС'Z '"

1 Ответ

1 голос
/ 26 сентября 2019

long должно быть Long, потому что long является основным типом в java, а не объектом, поэтому Long является объектом, который можно проверить, является ли он нулевым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...