我正在使用Spring Boot和JPA编写REST服务。我需要能够验证一些输入字段,并且我希望确保我使用适当的模式。
假设我有以下模型,我也无法控制模型:
{
"company" : "ACME"
"record_id" : "ACME-123"
"pin" : "12345"
"company_name" : ""
"record_type" : 0
"acl" : ['View','Modify']
"language" : "E"
}
我需要做的事情是:
我认为这个设置是我认为是控制器的标准方式 - >服务 - > DTO - > DAO - >模型。我想到的另一个选择是在validateCreate()中创建一个方法,该方法将遍历上面的所有项目并在需要时抛出异常。
感谢。
答案 0 :(得分:1)
是的,NotEmpty是正确的方式
您应该定义Language
枚举。 POJO的语言字段应为Language
与2.定义Acl
枚举
在Java代码中定义它。默认情况下,将字段的值初始化为5。如果JSON包含值,Jackson会将字段值设置为JSON中的值。否则,它将保持为5.或者将该字段初始化为null,并添加方法getValueOrDefault(int defaultValue)
,如果值为null,则返回所需的默认值。
与4相同
定义应用于类本身的自定义验证器,而不是类的属性。在验证器中,两个相关值是正确的。