我如何添加动态 bean 验证 java

问题描述

我曾经在我的 dto 上使用基于注释的 java bean 验证,我问是否可以进行动态验证,例如从数据库表中检索约束:

我有一个实体用户:

@Entity
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    
   @Size(min = 10,max = 200,message 
    = "Name must be between 10 and 200 characters")
    private String name;
    
    @NotBlank(message = "Email is mandatory")
    private String email;
    
    // standard constructors / setters / getters / toString
        
}

我想在不使用注释的情况下验证名称约束,例如在我的数据库中我将​​添加一个表:

Data_Definition -------------*> Data_Field


@Entity
public class DataDefinition{
   String name ;
   List<DataField> dataFields ;
}

@Entity
public class DataField{
   String name ;
   String pattern;
   int min;
   int max ;
   boolean required;
   ....
}

在我的控制器或服务中,我想在我的 Dto 用户上应用这些验证角色,例如:

@RestController
public class GlobalController {


    private boolean validateDto(@RequestBody Object object) {
         // get object name 
         // retrieve object constraints validation from the database tables ( we can use cache to save them)
         // validate the object 
        // return true or false
    }
    
   // other methods
    
}

有什么想法可以帮助我在不使用任何注释的情况下实现这一目标吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)