当前使用版本(必填,否则不予处理)
mybatis-plus-boot-starter 3.4.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
调用IService的getById方法
重现步骤(如果有就写完整)
mysql5.7,设置了id主键,现有数据中不存在主键重复的情况。 调用根据id查询方法后,发现系统报错,提示预期得到一条数据,实际返回两条数据。 打印sql语句及结果如下图所示。 发现查询条件没有问题,设置id参数也没有问题。返回的结果中,一个id正确,一个id不正确。将这个sql复制到mysql中直接执行,可以准确返回一条数据。
报错信息
Comment From: miemieYaho
mp不参与sql执行
Comment From: helloWorldPsyduck
救命,想不到可能性。
Comment From: helloWorldPsyduck
找到原因了。。。数据库设计的是varchar类型,实体类使用的long类型。在比较大小时mysql自动转化成浮点类型,导致精度丢失