• 解决一个mybatisplus left join里有ur报错问题


    今天调试没有注意写了下面语句

    1. select
    2. sns.send_id,
    3. sns.notice_id,
    4. sns.user_id,
    5. sns.read_flag,
    6. sa.notice_title as notice_title,
    7. sa.notice_content as notice_content,
    8. sa.sender as sender,
    9. sa.priority as priority,
    10. sa.notice_type as notice_type,
    11. sa.send_time as send_time
    12. from sys_notice_send sns
    13. left join sys_notice sa ON sns.notice_id = sa.notice_id
    14. left join sys_user ur ON sns.user_id = ur.user_id
    15. where sa.send_status = '1'
    16. and sa.status = '0'
    17. and sns.user_id = #{noticeSendModel.userId}

    结果报错,如下:

    1. at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
    2. ... 109 common frames omitted
    3. Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select
    4. sns.send_id,
    5. sns.notice_id,
    6. sns.user_id,
    7. sns.read_flag,
    8. sa.notice_title as notice_title,
    9. sa.notice_content as notice_content,
    10. sa.sender as sender,
    11. sa.priority as priority,
    12. sa.notice_type as notice_type,
    13. sa.send_time as send_time
    14. from sys_notice_send sns
    15. left join sys_notice sa ON sns.notice_id = sa.notice_id
    16. left join sys_user ur ON sns.user_id = ur.user_id
    17. where sa.send_status = '1'
    18. and sa.status = '0'
    19. and sns.user_id = ?
    20. order by sns.read_flag,sa.send_time desc
    21. at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)
    22. at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)
    23. at com.ruoyi.framework.interceptor.PlusDataPermissionInterceptor.beforeQuery(PlusDataPermissionInterceptor.java:49)
    24. at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)
    25. at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
    26. at com.sun.proxy.$Proxy251.query(Unknown Source)
    27. at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
    28. ... 116 common frames omitted
    29. Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "ur"
    30. at line 14, column 24.

    开始没有注意,以为是sql语句有问题,后来在navicat里执行好像也没有错误。

    后来再仔细看后,发现说ur是关键字?不能用ur,果然用下面语句就好了。

    1. select
    2. sns.send_id,
    3. sns.notice_id,
    4. sns.user_id,
    5. sns.read_flag,
    6. sa.notice_title as notice_title,
    7. sa.notice_content as notice_content,
    8. u.nick_name as sender,
    9. sa.priority as priority,
    10. sa.notice_type as notice_type,
    11. sa.send_time as send_time
    12. from sys_notice_send sns
    13. left join sys_notice sa ON sns.notice_id = sa.notice_id
    14. left join sys_user u ON sns.user_id = u.user_id
    15. where sa.send_status = '1'
    16. and sa.status = '0'
    17. and sns.user_id = #{noticeSendModel.userId}

    注意出错日志里有这句Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "ur"

    说明是跟ur相关了。

  • 相关阅读:
    canvas画布绘图
    【Ubuntu20.04安装java-8-openjdk】
    C++11标准模板(STL)- 算法(std::transform)
    软件工程之总体设计
    【机器学习项目实战10例目录】项目详解 + 数据集 + 完整源码
    web扫码登录
    zip压缩包密码怎么解开,zip压缩包权限限制怎么解除?
    【Rust 中级教程】 04 trait (2)
    Java图书管理系统实训报告
    Flink的job提交全流程及web ui提交任务方式
  • 原文地址:https://blog.csdn.net/qq_40032778/article/details/133233897