问题描述
我正在尝试更改 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)
}
}