1.注意jar包!cglib-2.1.3和hibernate3才兼容。。别用别的版本的cglib
[Microsoft][SQLServer 2000 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>