Spring boot @“对长有效”数据类型不适用于强制检查
我有下面的输入类,当我触发输入中没有'interactionId'参数的api时, 我期望验证错误消息“interactionId不能为空”,但验证通过,我猜这可能是由于interactionId的默认值为0 请找个人。当输入中未给出“long”参数时,是否帮助对其强制执行此验证 对于customerId参数@NotEmpty,其工作方式与预期一致。将@NotEmpty用于long参数“interactionId”会引发另一个错误@NotEmpty不能长时间使用Spring boot @“对长有效”数据类型不适用于强制检查,spring-boot,Spring Boot,我有下面的输入类,当我触发输入中没有'interactionId'参数的api时, 我期望验证错误消息“interactionId不能为空”,但验证通过,我猜这可能是由于interactionId的默认值为0 请找个人。当输入中未给出“long”参数时,是否帮助对其强制执行此验证 对于customerId参数@NotEmpty,其工作方式与预期一致。将@NotEmpty用于long参数“interactionId”会引发另一个错误@NotEmpty不能长时间使用 public class Inp
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
公共类控制器{
@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);
}
@PostMapping(value=“/detailed customer transaction”,生产=
MediaType.APPLICATION_JSON_值)
@应答器
public ResponseEntity detailTransactions(@Valid@RequestBody Input
参数)
{
返回新的响应属性(Dao.detailTransactions(params),HttpStatus.OK);
}
以上问题由Long改为Long后解决
查询#2
我需要另一个帮助。我有一个字符串输入参数,它采用以下格式的日期-时间格式。如果它是一个字符串参数,我如何验证模式=“yyy-MM-dd'T'HH:MM:ss.SSS'Z'”long应该是long,因为long是java中的主要类型,而不是对象,所以long是一个可以检查是否为null的对象我的错!…我太傻了。我看得太多了。这很有效。谢谢@clevertension.Hi@clevertension你能帮我查询#2吗?你可以参考这个add@DateTimeFormat(模式)=“yyyy-MM-dd'T'HH:MM:ss.SSS'Z'”)我尝试了它,但在输入其他格式时没有抛出任何验证错误。鉴于我的api输入是JSON,并且日期输入将作为字符串提供,我希望保留输入数据类型,以字符串形式提供并强制执行此验证。