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

mp: 3.5.3.1 数据库:oracle 11g

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

通过mp查询打印以下SQL,出现异常:Caused by: java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字, 具体的原因是因为实体中的描述字段为desc,mp在生成的SQL语句未对desc这个别名做关键字处理导致。

SELECT user_ud,user_name,USER_DESCRIPTION AS desc FROM sys_user;

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

在实体中定义desc这个字段,字段使用@TableField("s_desc")标注与数据库的映射关系,然后直接通过mp查询表数据,即可出现这个异常

报错信息

Cause: java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字

; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字

at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:93)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
at com.sun.proxy.$Proxy66.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)

Comment From: qmdx

1,字段避免使用数据库关键词 2,如果使用了注解加上转义字符串处理,例如 @TableField("'desc'")