在一个连接查询中,在MySQL查询工具中查询没有问题,粘到项目里的Mapper.xml文件中,运行时却报MybatisPlusException: Error: Method queryTotal execution error of sql :
SELECT
ANY_VALUE(e.id) AS "id",
ANY_VALUE(e.project_no) AS "projectNo",
ANY_VALUE(sampleIn.sample_id) AS "fieldNumber",
ANY_VALUE(e.subject_no) AS "laboratoryNumber",
ANY_VALUE(e.type) AS "type",
ANY_VALUE(d.sampling_location) AS "location",
ANY_VALUE(sampleIn.in_quantity) AS "inquatity",
ANY_VALUE(sampleIn.create_date) AS "createDate",
ANY_VALUE(sys_user.name) AS "createUser",
ANY_VALUE(s. project_no) AS "projectNoName",
ANY_VALUE(s.subject_name) AS "subjectName",
ANY_VALUE(sd.name) AS "saveCondition",
ANY_VALUE(sa.location) AS "location",
ANY_VALUE(DATE_FORMAT(sa.shelf_life,'%Y-%m-%d'))AS"shelfLife"
FROM labcode e
LEFT JOIN labprojects s ON e.project_no = s.id
LEFT JOIN labprojectplan n ON s.id = n.project_no
LEFT JOIN labprojectplan_field d ON n.id = d. lab_project_plan_id AND e.serial_number = d.serial_number AND e.letter_code =d.letter_code
LEFT JOIN labsubjectsample sa ON e.id =sa.laboratory_number
LEFT JOIN laboratorysamplein sampleIn ON sampleIn.code_id = e.id
LEFT JOIN sys_user ON sampleIn.create_user=sys_user.user_id
LEFT JOIN sys_dict sd ON sd.code = sa.save_condition
WHERE 1 = 1
AND s.is_delete = 0
AND e.is_delete=0
AND e.subject_no LIKE '%B'
AND e.type=3
GROUP BY e.id
ORDER BY ANY_VALUE(sampleIn.create_date) DESC
去网上搜索之后确认是 where条件的问题,于是一一排除,最终锁定在几个 is_delete 字段上,在数据库中是char类型,数据库查询工具支持直接使用0、1来查询,而MyBatis中需与数据库中保持一致,最后,将where部分改为
WHERE 1 = 1
AND s.is_delete = '0'
AND e.is_delete='0'
AND e.subject_no LIKE '%B'
AND e.type='3'
问题解决.
这个异常基本上都是where条件的问题,而类型不匹配只是其中一种,其他的还有条件空值、关键字与框架冲突等问题。只要写代码时细心、多考虑避免异常,出问题时耐心、逐一排查,问题解决后善于总结,在写代码的路上才能积累经验,逐渐成长。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)