如何使用 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;
}
}
假设我有一个简单的表单,用户必须填写以下字段:
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;
}
}