当前位置: 首页 > 知识库问答 >
问题:

关于模型添加和更新方法的Spring Hibernate验证器问题

景俊语
2023-03-14
@NotEmpty
@Size(min = 4, max = 40)
private String password;

当我保存“Admin”时,密码是必需的,我使用了“@valid@modelattribute Admin Admin”。所以在保存之前会检查它。

但是当我更新admin时,如果用户没有提供密码,我们认为他不想修改密码,所以密码的null值是合法的,对于这种情况,我们不能再使用“@valid@modelattribute admin admin”了,因为password属性已经用@notempty注释了,所以对于这种情况,我们的方法是手动在代码中自己做,我想有没有更好的方法解决呢?我们仍然希望使用Bean验证特性。

还有另一个问题:

@NotEmpty
@Size(min = 2, max = 20)
private String username;

我希望有人能帮我。谢谢

共有1个答案

皇甫高阳
2023-03-14

可以使用组。例如,您的模型是:

@NotEmpty(groups = CreateAdmin.class)
@Size(min = 4, max = 40)
private String password;

创建管理组。

public interface CreateAdmin {
}

在Spring控制器中,使用Spring的@validated而不是@valide

@Validated(value = CreateAdmin.class) @ModelAttribute Admin admin
@Validated @ModelAttribute Admin admin
 类似资料:
  • 我有一个模型(加载到内存中),它在生产中使用来自消息队列消息/数据来进行预测。我有一个单独的过程,每隔几个小时重新训练模型(必要的)。在每次重新训练发生时,触发模型将新训练的版本重新加载到内存中的最佳方法是什么?目前,我只是让生产模型每隔一段时间或每1000条消息重新加载一次。 我想,如果不是消息队列,而是一个WebServer的话,这会更容易。这样我就可以有一个可以触发重新加载的endpoint

  • 问题内容: 我有一个带有开始和结束日期范围的Django模型。我想强制执行验证,以便没有两个记录具有重叠的日期范围。最简单的实现方式是什么,这样我就不必重复编写逻辑了? 例如,我不想在Form 和 a 以及 admin表单中重新实现此逻辑, 并且 模型被重写。 据我所知,Django在全球范围内强制执行这些类型的条件并不容易。 Googling并不是很有帮助,因为“模型验证”通常是指验证特定的模型

  • 我已经搜索并找到了很多关于这个问题的话题,但无论出于什么原因,解决方案都不能解决我的问题。 我运行的是Spring boot 1.5.8和Hibernate。 我创建了一个自定义验证注释,以检查电子邮件与数据库相比是否唯一。注释使用查询数据库,以检查数据库中是否已存在电子邮件。我一直得到一个异常,bean为空。 我的理论是使用了hibernate验证器,而不是< code > UniqueEmai

  • 在本节中将会给Movie模型添加验证逻辑。并且确保这些验证规则在用户创建或编辑电影时被执行。 拒绝重复 DRY ASP.NET MVC 的核心设计信条之一是DRY: "不要重复自己(DRY --Don’t Repeat Yourself)"。ASP.NET MVC鼓励您指定功能或者行为,只做一次,然后将它应用到应用程序的各个地方。这可以减少您需要编写的代码量,并减少代码出错率,易于代码维护。 给A

  • 这就是验证邮件里面的链接需要访问的入口方法咯 @Filters // 不需要先登录,很明显... @At("/active/mail") @GET @Ok("raw") // 为了简单起见,这里直接显示验证结果就好了 public String activeMailCallback(@Param("token")String token, HttpSessi

  • 打开BaseModule类,先添加2个属性 @Inject protected EmailService emailService; protected byte[] emailKEY = R.sg(24).next().getBytes(); 打开UserProfileModule类,添加一个方法 @At("/active/mail") @POST public Ob