如何使用 Hibernate 验证注释处理 "Save as draft"

How to handle "Save as draft" with Hibernate validation annotations

假设我有一个简单的表单,用户必须填写以下字段:

name
surname
birth date
address

数据需要保存在数据库table中,同fields/columns。所有列都不可为空。

表单提供了两个按钮:“保存”和“另存为草稿”,让用户稍后完成表单的编辑。

第一个将检查是否所有字段都正确填写,而第二个不进行任何检查,除了“无法在名称字段中插入数字”。

我倾向于在我的 DTO 上使用 Hibernate Validation 注释,但在这种情况下会破坏“另存为草稿”功能。

你会如何处理这种情况?

我正在使用的技术:Spring Boot/MVC 公开前端使用的 REST 服务,hibernate/Spring DATA 将数据保存到数据库。

为您的条目创建一个接口并创建该接口的两个实现。
一个是带有注释的实际条目。
另一个是没有这些注释的草稿。

您可以直接在属性上使用验证函数而不是注释。这样你的验证就可以有一些逻辑。

@Value
class MyDto{
  String name;
  String surname;
  DateTime birthdate;
  Address asdress;
  boolean draft;

  @AssertTrue
  private boolean validateInstance(){
    if(!isDraft()){
      // do validation
    }
    return true;
  }
}