问题标签 [javax.validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JAX-RS ExceptionMapper 未捕获 javax.validation.ConstraintViolationException
我已经开始使用 javax.validation 的@Valid
注释来验证到达我的 REST 端点的数据。这是按预期工作并引发适用的异常:
我的理解ExceptionMapper
是我应该能够做到这一点:
Response
哪个应该捕获该异常并指定要发回的适当对象。
然而,这不起作用,这是完整的顶级堆栈跟踪项:
我的理解是ConstraintViolationException
,虽然是原因,但已被打包在 RollbackException 中,因此不会被 ExceptionMapper 捕获。
- 有人可以证实这一点吗?
- 如果是这样,是否有办法覆盖此行为并捕获其中包含的任何异常
ConstraintViolationException
? - 如果没有,有什么好的解决方法?
想法?
谢谢。
java - 从 pojo 模型中提取约束作为可重用的验证对象
我们想将一个旧的内部开发的业务 API 迁移到一个现代框架,如 hibernate 和 javax.validation 并考虑这个概念。数据模型是 pojos(例如“UserModel”)。在模型中有带有getter 和setter 的变量字段(例如“String login”)。然后是为许多具有继承结构的类型(例如 SystemColumn 扩展 StringColumn 扩展 AbstractColumn)定制设计的静态列类(例如“LOGIN”):
现在我们想将其迁移到现代方式,以便我们可以使用 hibernate 引擎或 javax.validation 轻松处理模型:
旧东西的优点是“LOGIN”可以访问和移植到一个 gui 列。我们可以重用它,而无需在代码中到处都有一个额外的 LoginModel 对象,但每次都使用相同的条件。因此,当从 CSV 导入字符串时,我们只需使用:
因此,整个源代码中只有一个接口可以将表达式解析为有效登录。是否可以像这样重用 @Column 和 @Constraint 功能?或者你能建议其他机会吗?
此致
java - javax.validation.ConstraintValidator 创建了两次(spring boot)
我正在使用 Spring Boot 2.2.4 和 Hibernate 5.4.10。我不明白为什么验证器对象被创建了两次:第一次使用 Spring Boot 上下文,第二次没有它。我试过 javax.persistance.validation.mode=none - 没有任何改变。主要问题是使用 Spring 上下文创建的对象被忽略。注解:
基类:
两个派生类看起来一样,所以只有一个:
如 Spring Boot 文档中所述,我创建了以下 bean LocalValidatorFactoryBean
:
java - 有条件的 javax.validation.constraints.Pattern
我想在某些条件下关闭 javax.validation.constraints.Pattern。
它用于字段 address.postcode 以验证邮政编码模式。但是当地址是非英国时,应该将其关闭。我们可以通过知道“地址”对象的使用位置或设置邮政编码的位置来知道它是否是非英国邮政编码。