本站资源收集于互联网,不提供软件存储服务,每天免费更新优质的软件以及学习资源!

在HibernateValidator中插入消息时如何访问实例变量?

网络教程 app 1℃

在HibernateValidator中插入消息时如何访问实例变量

在 hibernate validator 中,我们经常需要自定义验证消息。有时,我们需要访问实例变量来动态地生成消息。那么,在 hibernate validator 中,如何访问实例变量呢?首先,我们需要在验证注解中使用占位符来引用实例变量。然后,在消息资源文件中,我们可以使用”{}”来获取实例变量的值。通过这种方式,我们可以灵活地插入实例变量的值,从而生成个性化的验证消息。在本文中,php小编鱼仔将为您详细介绍在 hibernate validator 中插入消息时如何访问实例变量。

问题内容

当使用 crudrepository::save 将对象插入存储库时,我使用 hibernate validator 和 spring 来验证对象。假设我们有课:

public class Person { public int id; @NotBlank(message="User with id: ${id} is missing name") public String name;}

我希望内插消息能够访问 person 实例的所有字段,例如id 字段,然后像“${id}”或“${this.id}”一样访问它们。文档提到了一些关于能够访问所有 bean 属性的内容,但我猜它只能与类级约束一起使用。

是否有某种方法可以在不诉诸类级约束的情况下做到这一点?

解决方法

约束验证器无法访问字段本身之外的任何信息。因此,换句话说,没有办法访问同级字段。这与约束的范围有关。这样看:

@NotBlankpublic String name;

非空的 name 可以是个人字段,也可以是公司或其他类中的字段。它与 @notblank 所在位置没有区别。

因此,正如您在问题中所建议的那样,为了在插入消息时访问其他类字段,约束应该处于类级别……为了不创建大量自定义约束,您可以考虑查看 @scriptassert。

另请注意,constraintviolationexception 包含 constraintviolation 列表,从中您应该能够访问叶 bean (getleafbean()) 或根 bean (getrootbean()),并获取您的信息抛出异常后需要。

以上就是在 Hibernate Validator 中插入消息时如何访问实例变量?的详细内容,更多请关注范的资源库其它相关文章!

转载请注明:范的资源库 » 在HibernateValidator中插入消息时如何访问实例变量?

喜欢 (0)