SQL Error: 1146, SQLState: 42S02 错误
<hibernate-mapping>
<class name="com.zhidao.model.ZdQuestion" table="zd_question" catalog="zhidao">
<id name="zdId" type="int">
<column name="zd_id" />
<generator class="identity" />
</id>
<property name="zdTitle" type="string">
<column name="zd_title" length="45" not-null="true" />
</property>
<property name="zdContent" type="string">
<column name="zd_content" length="45" not-null="true" />
</property>
<property name="zdTime" type="timestamp">
<column name="zd_time" length="19" not-null="true" />
</property>
<property name="zuId" type="int">
<column name="zu_id" not-null="true" />
</property>
<property name="zdMoney" type="int">
<column name="zd_money" not-null="true" />
</property>
<property name="zdGroup" type="string">
<column name="zd_group" length="45" not-null="true" />
</property>
<property name="zdIsQuestion" type="int">
<column name="zd_isQuestion" not-null="true" />
</property>
<property name="zdIsbest" type="int">
<column name="zd_isbest" not-null="false" />
</property>
</class>
</hibernate-mapping>
报错:
execute method getDaoImp()
查询方法:searchPager():from ZdQuestion a
2007-07-28 13:32:07,906 [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]-[INFO] Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2007-07-28 13:32:07,953 [org.springframework.jdbc.support.SQLErrorCodesFactory]-[INFO] SQLErrorCodes loaded: [DB2, HSQL, MS-SQL, MySQL, Oracle, Informix, PostgreSQL, Sybase]
Hibernate: select zdquestion0_.zd_id as zd1_, zdquestion0_.zd_title as zd2_1_, zdquestion0_.zd_content as zd3_1_, zdquestion0_.zd_time as zd4_1_, zdquestion0_.zu_id as zu5_1_, zdquestion0_.zd_money as zd6_1_, zdquestion0_.zd_group as zd7_1_, zdquestion0_.zd_isQuestion as zd8_1_, zdquestion0_.zd_isbest as zd9_1_ from zhidao__zd_question zdquestion0_ limit ?
2007-07-28 13:32:08,093 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 1146, SQLState: 42S02
2007-07-28 13:32:08,093 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] Table 'zhidao.zhidao__zd_question' doesn't exist
org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:70)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:1596)
at org.hibernate.loader.Loader.list(Loader.java:1577)
at org.hibernate.hql.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:890)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at com.zhidao.dao.DaoImp.searchPager(DaoImp.java:27)
at com.zhidao.service.ServiceImp.listData(ServiceImp.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
at $Proxy1.listData(Unknown Source)
at com.zhidao.struts.action.AskAaction.simpleSearchAsk(AskAaction.java:88)
at com.zhidao.struts.action.AskAaction.execute(AskAaction.java:56)
Caused by: java.sql.SQLException: Table 'zhidao.zhidao__zd_question' doesn't exist
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2978)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:930)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1024)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:75)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:120)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1272)
at org.hibernate.loader.Loader.doQuery(Loader.java:391)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
at org.hibernate.loader.Loader.doList(Loader.java:1593)
... 54 more
从上面的错误可以看出,错误在zhidao.zhidao__zd_question 表名上,
这个错误是说没有找到表名:Caused by: java.sql.SQLException: Table 'zhidao.zhidao__zd_question' doesn't exist
其实我数据库里的表名是zd_question但为什么又在前面加上了zhidao__了呢?这个是我数据库的数名啊~!!汗~!
后来发现
<class name="com.zhidao.model.ZdQuestion" table="zd_question" catalog="zhidao">
多了这个~!“catalog="zhidao" ”这个地方是把库名放在上面了,当生成Hibernate生成SQL语句时把表名前又加上了库名,所以报错了~!
下面让我改了,马上就好使了~!汗~!!
--转自