当我使用ModelService.save()保存模型时,它会抛出

de.hybris.platform.servicelayer.interceptor.InterceptorException: [de.hybris.platform.servicelayer.interceptor.impl.UniqueAttributesInterceptor@555528e4]:ambiguous unique keys
        at de.hybris.platform.servicelayer.interceptor.impl.UniqueAttributesInterceptor.onValidate(UniqueAttributesInterceptor.java:158)


据我了解,它正在发生是因为它正在尝试INSERT,并且如果它可以执行INSERT_UPDATE,则可以解决该问题。我不想启用传统模式,因此请提供一种解决方案,使我可以通过INSERT_UPDATE方法执行ModelService.save()

如果ModelService.save()正在执行INSERT_UPDATE,那么为什么会出现错误。

最佳答案

看起来,您正在尝试再次插入UNIQUE记录。

更新记录


您必须首先从db获取现有模型obj(包含pk)。为此,您可以使用灵活搜索,get model by example等。
现在更新所需的属性
保存modelService.save(obj)


插入新条目


创建模型实例并设置值

final MyModel obj = modelService.create(MyModel.class);

obj.setId("unique");
保存它modelService.save(product);

10-04 23:28