当前使用版本(必填,否则不予处理)

mybatis-plus-boot-starter 3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

调用IService的getById方法

重现步骤(如果有就写完整)

mysql5.7,设置了id主键,现有数据中不存在主键重复的情况。 调用根据id查询方法后,发现系统报错,提示预期得到一条数据,实际返回两条数据。 打印sql语句及结果如下图所示。 发现查询条件没有问题,设置id参数也没有问题。返回的结果中,一个id正确,一个id不正确。将这个sql复制到mysql中直接执行,可以准确返回一条数据。

报错信息

MyBatis-Plus 根据id查询,查出两条id不一致的数据

Comment From: miemieYaho

mp不参与sql执行

Comment From: helloWorldPsyduck

救命,想不到可能性。

Comment From: helloWorldPsyduck

找到原因了。。。数据库设计的是varchar类型,实体类使用的long类型。在比较大小时mysql自动转化成浮点类型,导致精度丢失