Maven dependency
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC2</version>
</dependency>
Database routing information
public class ThirdMatchMarketOddsHintShardingDbAlgorithm
implements HintShardingAlgorithm<String> {
@Override
public Collection<String> doSharding(Collection<String> availableTargetNames, HintShardingValue<String> shardingValue) {
return Collections.singleton("ds1");
}
}
Table routing information
public class ThirdMatchMarketOddsHintShardingTableAlgorithm
implements HintShardingAlgorithm<String> {
@Override
public Collection<String> doSharding(Collection<String> availableTargetNames, HintShardingValue<String> shardingValue) {
Collection<String> list = new ArrayList<>();
for (String availableTargetName : availableTargetNames) {
for (String value : shardingValue.getValues()) {
if (availableTargetName.endsWith(value)){
list.add(availableTargetName);
return list;
}
}
}
throw new IllegalArgumentException();
}
}
Batch update Database routing succeeds, table routing fails
HintManager instance = HintManager.getInstance();
instance.addTableShardingValue("third_sport_market_odds","n01");
instance.addDatabaseShardingValue("third_sport_market_odds","ds1");
thirdSportMarketOddsService.upThirdOddsAsyncList("CE","AO",item,new ArrayList<>());