首页 > 解决方案 > 尝试在 Hybris 上启用动态约束时出错

问题描述

我在 Hybris 中有不同的动态约束。特别是当我想启用另一个约束具有相同注释类和类来验证属性的约束时,我在下面共享日志时遇到错误

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 出现问题?

提前致谢!

标签: hybris

解决方案


推荐阅读