我正在为特定的约束组(不是默认)编写自定义验证器,但运行时给了我下面的错误。为什么JSR303自定义注释的约束组默认为空数组?
我只是好奇他们为什么需要默认值为空。感谢您分享您的意见。谢谢:)
xxx.model.validation.CustomValidation包含约束注释,但groups参数的默认值不是空数组。
堆栈跟踪:org.hibernate.validator.metadata.ConstraintHelper.assertGroupsParameterExists(ConstraintHelper.java:335) org.hibernate.validator.metadata.ConstraintHelper.isConstraintAnnotation(ConstraintHelper.java:282)
感谢阿尔夫。关于**的最后一点“在约束定义中隐藏了组名,可能会遇到错误”**足够有效。如果@VAT是默认组与Default不同的自定义约束,则确实难以区分 - 因此会导致混淆和错误。 – 2012-08-03 01:52:45
虽然我不是很了解你的第一点。我有A组,B组代表不同的验证规则。但是对于B组,我需要在多个字段上执行一些自定义验证(例如,它们的总和必须高于某个最小值),因此我在模型本身上编写了一个自定义验证器/约束(即Target:ElementType.TYPE)。这个自定义验证器对B组是唯一的,因此我试图把B作为默认约束组。 – 2012-08-03 02:03:43
@TheHuy,看我的编辑 – Alf 2012-08-03 08:00:41