快捷搜索: 王者荣耀 脱发

shardingjdbc 开发问题集

1、分片键日期不能用hutool工具类转化的日期对象去查询,否则会报错

报错内容:Sharding value must implements Comparable

解决方法:由于hutool转化的日期对象DateTime没有实现Comparable接口,所以报错,采用jdk的Date类型即可

2、由于spring-cloud-starter-alibaba-nacos-discovery依赖guava20, 而shardingjdbc依赖guava18,造成版本冲突报错,故先去除在添加guava20,

报错内容:com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;

解决办法:先排除sharding下guava,在添加guava20,如下所示

<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- guava 由于spring-cloud-starter-alibaba-nacos-discovery依赖guava20,
    而shardingjdbc依赖guava18,造成版本冲突报错,故先去除在添加guava20 -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>20.0</version>
</dependency>

3、shardingjdbc4.1.1没有实现isValid()方法,故spring-boot-starter-actuator在进行数据库健康检查时会报错,同时springbootAdmin监控上会发现该服务处于down状态

解决办法:

配置spring-boot-starter-actuator的参数,禁用数据库的健康检查

management.health.db.enabled=false
经验分享 程序员 微信小程序 职场和发展