Failed to fetch schema of `order`的解决办法

时间:2024-03-24 12:42:02

解决办法:只需要在Url里添加useInformationSchema=false

前: jdbc:mysql://localhost:3306/orders
后:jdbc:mysql://localhost:3306/orders?useInformationSchema=false
当然另外一张被调用的服务所对应的表也需要进行响应的修改

情景:

1.报错日志
Failed to fetch schema of `order`的解决办法
2.在使用分布式事务seata的时候才会出现问题
Failed to fetch schema of `order`的解决办法
3.去除注解之后数据库操作正常,因此可以判断是seata分布式事务的缘故

百科

Connector/J 5.0.0以后的版本有一个名为useInformationSchema的数据库连接参数,
在默认连接参数情况下,useInformationSchema=false,导致Connection.getMetaData()方法返回的DatabaseMetaData 对象是com.mysql.jdbc.DatabaseMetaData,而不是com.mysql.jdbc。DatabaseMetaDataUsingInfoSchema,DatabaseMetaDataUsingInfoSchema是DatabaseMetaData是的子类,看名称就能联想到是通过 INFORMATION_SCHEMA 数据库获取数据库的metadata,可以正确返回table_comment字段。