我有一个项目,其中数据模型和业务层位于两个不同的模块中。当然,业务模块依赖于模型模块。实体验证是通过 java-validation-api 注解实现的。
我想知道我应该在哪里实现跨实体验证(业务验证,验证不同实体类型之间的关系)。目前我看到以下选项:
- 创建自定义 javax.validation.ConstraintValidators 和相关的注解。问题是,验证器需要访问业务服务,即检索相关实体,但模型模块不应该依赖于业务模块。
- 在业务服务持久化/合并方法中实现跨实体验证(即通过使用拦截器)。这是可能的,但跨实体验证与实体验证是分开的,我希望只有一个地方进行验证。
哪个选项更可取?有没有更好的建议?
谢谢,塞巴斯蒂安