将每个本地化的布尔属性值更新为TRUE

时间:2018-10-25 09:57:59

标签: java hybris impex

我已将type =“ localized:java.lang.Boolean的新属性” showFlag“添加到itemtype VariantProduct并将默认值设置为TRUE。但是对于现有的变量产品,该值为n / a。 enter image description here

我想将所有语言(本地化)的showFlag值都更新为“是”。我该怎么做?

4 个答案:

答案 0 :(得分:3)

您可以使用impex批处理模式更新它们,以最快的方式进行。

docker run hello-world

答案 1 :(得分:2)

执行此操作的简单解决方案是使用类似这样的常规脚本

import de.hybris.platform.servicelayer.model.ModelService;
import de.hybris.platform.servicelayer.search.FlexibleSearchQuery;
import de.hybris.platform.servicelayer.search.FlexibleSearchService;
import de.hybris.platform.servicelayer.search.SearchResult
import de.hybris.platform.variants.jalo.VariantProduct


FlexibleSearchService flexibleSearchService=(FlexibleSearchService)spring.getBean("flexibleSearchService");
ModelService modelService=(ModelService)spring.getBean("modelService");

List<Locale> locals = Arrays.asList(Locale.getAvailableLocales()); 

queryString="Select {pk} from {variantProduct} ";

FlexibleSearchQuery query=new FlexibleSearchQuery(queryString);

SearchResult result=flexibleSearchService.search(query);


List<VariantProduct> products = result.getResult();

for(VariantProduct variantModel : products){

    for (Locale locale : locals){
        variantModel.setShowFlag(Boolean.TRUE,locale);
    }
    modelService.save(variantModel);
}

调整此代码以使其更符合您的需求,

希望这会有所帮助

答案 2 :(得分:0)

使用bean shell并使用i18nService遍历每种语言吗?

答案 3 :(得分:0)

以下impex导入脚本可以很好地解决上述问题:

onComplete()