我在Hybris中有不同的动态约束。尤其是当我想启用另一个约束具有相同的 Annotation类和Class来验证属性的约束时,由于在下面共享日志而出现错误
Caused by: de.hybris.platform.servicelayer.exceptions.ModelSavingException: [de.hybris.platform.validation.interceptors.AbstractConstraintUniqueValidator@778b3552]: Duplicated constrainted violation for a type constraint id: couponEANCheck [de.hybris.platform.couponservices.model.AbstractCouponModel ] @de.hybris.platform.validation.annotations.Dynamic groups: [[]]
at de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokeValidateInterceptors(ModelWrapper.java:302) ~[coreserver.jar:?]
at de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.validate(ModelWrapper.java:239) ~[coreserver.jar:?]
at de.hybris.platform.servicelayer.internal.model.extractor.impl.DefaultModelExtractor.process(DefaultModelExtractor.java:57) ~[coreserver.jar:?]
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:710) ~[coreserver.jar:?]
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:705) ~[coreserver.jar:?]
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:685) ~[coreserver.jar:?]
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:647) ~[coreserver.jar:?]
at com.hybris.backoffice.cockpitng.dataaccess.facades.object.DefaultPlatformObjectFacadeStrategy.executeWithWorkflowTemplateActivation(DefaultPlatformObjectFacadeStrategy.java:228) ~[classes/:?]
at com.hybris.backoffice.cockpitng.dataaccess.facades.object.DefaultPlatformObjectFacadeStrategy.save(DefaultPlatformObjectFacadeStrategy.java:162) ~[classes/:?]
... 114 more
由于 getConstraintDuplicates 方法正在获取结果,为防止这种情况,我覆盖了 DefaultConstraintDao 类中的它并更改了查询。
我的问题是,这是同时启用多个具有相同 Annotation类和要验证的类的约束的正确方法吗?
在覆盖并允许用户启用约束之后,这会在Hybris中引起问题吗?
谢谢!