如何更改 hybris 中的所有 PK 种子值?

问题描述

我正在尝试更改 hybris 系统中所有生成的密钥。我正在使用带有 hybris 6.3+ 的 oracle 数据库

解决方法

我使用下面的 groovy 来解决生成新的 pk 当前值

import de.hybris.platform.core.Registry;
import de.hybris.platform.core.PK.PKCounterGenerator;
import de.hybris.platform.persistence.numberseries.SerialNumberGenerator;
import de.hybris.platform.jalo.numberseries.NumberSeriesManager;

numberseriesmanager = spring.getBean("default.core.numberSeriesManager");

Collection<String> keys = numberseriesmanager.getAllNumberSeriesKeys();
for(String ke : keys){
    if(ke.contains('pk_')) {
        String[] keyWrd = ke.split("_");
        int keyint = Integer.parseInt(keyWrd[1]);
        int current = new de.hybris.platform.core.DefaultPKCounterGenerator().fetchNextCounter(keyint);
        SerialNumberGenerator generator = Registry.getCurrentTenant().getSerialNumberGenerator();
        generator.removeSeries("pk_" + ke);
        generator.createSeries("pk_" + ke,1,current * 3)
    }
}