[Microsoft][SQLServer 2005 Driver for JDBC][SQLServer]對象名 'blog.admin ' 無效
我hibernate.show_sql列印了一下sql語句如下
select
admin0_.id as id36_,
admin0_.loginName as loginName36_,
admin0_.password as password36_,
admin0_.authority as authority36_,
admin0_.bigregionid as bigregio5_36_
from
blog.admin admin0_
這句話在查詢分析器裡面執行是報錯的,依然是blog.admin對象名無效,檢查了資料庫沒寫錯,表名也沒寫錯
老以為是"[SQLServer]對象名 'blog.admin' 無效" 這裡作怪!資料庫删了又建,建了又删!
真想放棄啊
突然,眼睛一亮,才發覺,真正作怪的可能是
Hibernate: blog.admin admin0_
Hibernate: blog.dbo.admin admin0_
看看它與上面兩句有什麼差別
看出來了吧!少了個dbo,blog是我的資料庫名稱!
解決方法:在XXX.hbm.xml中修改catalog="blog" schema="dbo",我這裡是Admin.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.myplan.ppcdao.Admin" table="admin" catalog="blog" schema="dbo">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="loginName" type="java.lang.String">
<column name="loginName"/>
</property>
<property name="password" type="java.lang.String">
<column name="password"/>
</property>
<property name="authority" type="java.lang.Integer">
<column name="authority"/>
</property>
<property name="bigregionid" type="java.lang.Integer">
<column name="bigregionid"/>
</property>
</class>
</hibernate-mapping>
重新啟動資料庫和tomcat,一切OK!