当我使用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);