ShardingSphere报错 Sharding value must implements Comparable.
ShardingSphere整合Mybatis-plus报错 java.lang.IllegalArgumentException: Sharding value must implements Comparable.报错原因由于在配置文件中配置了shardingsphere的id生成策略,这里使用id做为分片健,shardingSphere在保存数据的时候就会自动生成id的值。spring.sh
·
ShardingSphere整合Mybatis-plus报错 java.lang.IllegalArgumentException: Sharding value must implements Comparable.
报错原因
由于在配置文件中配置了shardingsphere的id生成策略,这里使用id做为分片健,shardingSphere在保存数据的时候就会自动生成id的值。
spring.shardingsphere.sharding.tables.user.key-generator.column = id
spring.shardingsphere.sharding.tables.user.key-generator.type = SNOWFLAKE
但是在实体类上又贴了@TableId这个注解,这就和Mybatis-plus 产生了冲突。
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "`user`")
public class User implements Serializable {
// @TableId是问题的根源
@TableId(value = "id", type = IdType.INPUT)
private Long id;
@TableField(value = "`name`")
private String name;
@TableField(value = "address")
private String address;
@TableField(value = "birthday")
private Date birthday;
}
解决办法就是主键作为分片健的时候不要贴@TableId即可。如果是通过xml文件写sql的话,主键列则不需要写
更多推荐
已为社区贡献3条内容
所有评论(0)