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
下一篇:
一次mongo查询不存在字段引发的事故