对sql生成临时表后 仍然拼接 创建时间正序 字段导致查询异常ORDER BY create_time ASC

Blade 未结 1 12

一、该问题的重现步骤是什么?

1. 在mapper 中 写如blade_log_api 的sql ,mapper中没有指定排序规则 ,临时表 默认追加 ORDER BY create_time ASC 

image.png

二、你期待的结果是什么?实际看到的又是什么?

image.png

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

开源版

四、请提供详细的错误堆栈信息,这很重要。

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column ''create_time'' in ''order clause''

### The error may exist in file [F:\\workspace\\blade\\SpringBlade\\target\\classes\\org\\springblade\\modules\\system\\mapper\\LogApiMapper.xml]

### The error may involve defaultParameterMap

### The error occurred while setting parameters

### SQL: SELECT * FROM (SELECT id, create_time AS createTime, service_id, server_host, server_ip, env, type, title, method, request_uri, user_agent, remote_ip, method_class, method_name, params, time, create_by, (SELECT phone FROM blade_user WHERE id = create_by_user_id) AS phone FROM blade_log_api) temp ORDER BY create_time ASC LIMIT ?

### Cause: java.sql.SQLSyntaxErrorException: Unknown column ''create_time'' in ''order clause''

; bad SQL grammar []', 'SQLErrorCodeSQLExceptionTranslator.java' , 246, 'blade-api', '192.168.0.22:8088', 'PC-20240229DCRL', 'test' , '192.168.0.22', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36', '/blade-log/api/list', 'GET', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator' , 'doTranslate', 'current=1&size=10', 'admin', 1123598821738675201, TIMESTAMP '2025-09-30 18:43:57.045')

============ Sql Execute Time: 21.813ms ===========

五、若有更多详细信息,请在下面提供。

1条回答
  • 修改下mapper里的sql,给最里层的sql里加一个 create_time字段

    0 讨论(0)
提交回复