|
|
|
@@ -7,11 +7,26 @@ public class ShardingRuleDefaultService implements ShardingRuleService { |
|
|
|
if (null == value || count <= 0 ) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
int hash = 9999999; |
|
|
|
//如果是整数,则直接变为Long,好查询 |
|
|
|
if (value instanceof String) { |
|
|
|
try { |
|
|
|
Long lvalue = Long.parseLong((String)value); |
|
|
|
hash = getHashCode(lvalue); |
|
|
|
}catch(Exception e) { |
|
|
|
hash = getHashCode(value); |
|
|
|
} |
|
|
|
}else { |
|
|
|
hash = getHashCode(value); |
|
|
|
} |
|
|
|
return String.valueOf(hash%count); |
|
|
|
} |
|
|
|
|
|
|
|
private int getHashCode(Object value) { |
|
|
|
int hash = value.hashCode(); |
|
|
|
if (hash < 0 ) { |
|
|
|
hash = Math.abs(hash); |
|
|
|
} |
|
|
|
return String.valueOf(hash%count); |
|
|
|
return hash; |
|
|
|
} |
|
|
|
|
|
|
|
} |