hv000030:找不到约束“javax.validation.constraints.pattern”验证类型“java.util.date”的验证器

czq61nw1  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(396)

因此,我创建了一个类来检查我通过post方法发送的requestbody,我无法阻止出现以下错误:
hv000030:找不到约束“javax.validation.constraints.pattern”验证类型“java.util.date”的验证器。检查“dateto”的配置
类命令:

import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;
@Data
@NoArgsConstructor
public class Command {

    @Pattern(regexp = "^\\d{4}\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",message = "INVALID_DATE_FORMAT")
    @NotEmpty(message = "REQUIRED_INPUT")
    private Date dateFrom;

    @Pattern(regexp = "^\\d{4}\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",message = "INVALID_DATE_FORMAT")
    @NotEmpty(message = "REQUIRED_INPUT")
    private Date dateTo;
}

后处理方法:

@PostMapping(value = "/room/{id}/roomPrices",  headers = {
        "content-type=application/json" }, consumes = "application/json")
@Operation(tags = "Check room")
public testResponse postTest(@Valid @RequestBody Command command,
                             @PathVariable String id) {
    Command resp = this.roomService.getTest(id,command);
    return new testResponse (resp, HttpStatus.CREATED);
}

我之所以不发布postest函数的代码,仅仅是因为在错误出现之前,由于@valid注解,它甚至无法访问,如果约束无效,那么应用程序就不会再进一步。
当我尝试将模式更改为“.*”以确保注解正常工作时,仍然会出现相同的错误。只有当我删除@pattern注解时才会跳过它。
现在我不知道如何解决这个问题。日期数据类型和模式之间是否存在冲突?当另一个命令类的数据类型为string时,它似乎工作正常。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题