奇怪的SQL Error: 0,SQLState: S0022错误

Posted 血战31天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇怪的SQL Error: 0,SQLState: S0022错误相关的知识,希望对你有一定的参考价值。

我使用hibernate和javabean开发web application遇到以下错误

22203 [http-80-4] INFO org.hibernate.type.StringType - could not read column value from result set: name; Column ' name ' not found.
22203 [http-80-4] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0,SQLState: S0022
22203 [http-80-4] ERROR org.hibernate.util.JDBCExceptionReporter - Column ' name ' not found.
org.hibernate.exception.SQLGrammarException: could not execute query

 

我的sql语句是

select ta.name as username,
ta.code,
ta.desc,
tb.type,
tb.name as displayname
from tablea ta
left join tableb tb on tb.id = ta.id

这个sql语句很简单,但并不知道什么原因报错。尝试了很多方法但都不奏效。

 

我将sql语句修改成

select ta.name ,
ta.code,
ta.desc,
tb.type,
tb.name
from tablea ta
left join tableb tb on tb.id = ta.id

select ta.name ,
ta.code,
ta.desc,
tb.type,
tb.name as displayname
from tablea ta
left join tableb tb on tb.id = ta.id

控制台不再报错,但是javabean无法取到tb.name的值,或者说tb.name是空。不知道hibernate是怎么处理的。

 

有尝试了很多遍,终于解决了问题,但还是不清楚原因。

select ta.name ,
ta.code,
ta.desc,
tb.type,
concat(tb.name,’’)
from tablea ta
left join tableb tb on tb.id = ta.id

 

问题虽然解决了,但是不知道内在机理,心里总觉得不爽,大家有类似情况的分享一下啊。

 

 

以上是关于奇怪的SQL Error: 0,SQLState: S0022错误的主要内容,如果未能解决你的问题,请参考以下文章

DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: STAR9.T_LIANG,这个问题怎么在hibernate中如

DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048

SQL Error: 1064, SQLState: 42000

DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC

SQL对象命名使用保留字导致SQL Error: 1064, SQLState: 42000

SQL对象命名使用保留字导致SQL Error: 1064, SQLState: 42000