日期:2014-05-19  浏览次数:20783 次

对象‘orders’名无效
<hibernate-mapping>
  <class name="com.crm.report.entity.Orders" table="orders">
  <id name="odrId" type="java.lang.Long">
  <column name="odr_id" />
  <generator class="assigned" />
  </id>
  <property name="odrCustomer" type="java.lang.String">
  <column name="odr_customer" length="100" not-null="true" />
  </property>
  <property name="odrDate" type="java.util.Date">
  <column name="odr_date" length="23" not-null="true" />
  </property>
  <property name="odrAddr" type="java.lang.String">
  <column name="odr_addr" length="200" />
  </property>
  <property name="odrStatus" type="java.lang.String">
  <column name="odr_status" length="1" not-null="true" />
  </property>
  <set name="ordersLines" inverse="true" lazy="false">
  <key>
  <column name="odd_order_id" not-null="true" />
  </key>
  <one-to-many class="com.crm.report.entity.OrdersLine" />
  </set>
  </class>
</hibernate-mapping>

为什么老是报这个异常?
2010-04-19 10:19:05,859 ERROR [org.hibernate.util.JDBCExceptionReporter] - 对象名 'orders' 无效。


------解决方案--------------------
数据库里有没有orders这个表?
------解决方案--------------------
你做了映射吗
------解决方案--------------------
<class name="com.crm.report.entity.Orders" table="orders">

把table="orders" 改成table="t_orders"

orders可能跟关键字有关
------解决方案--------------------
探讨

先在是’t_orders‘无效了....

------解决方案--------------------
是不是你orders表不存在啊
------解决方案--------------------
探讨
orders表存在,但是在另一个数据库里面

------解决方案--------------------
http://blog.sina.com.cn/s/blog_4e8d68f9010081r0.html
------解决方案--------------------
你要把database schema 加进去xml, 才能找到那个表
------解决方案--------------------
-.-你想想,要是不用hibernate你用的是JDBC你会怎么去访问orders表?
根本就是两个URL

假设orders表在XE2库中

访问oracle的XE数据库
jdbc:oracle:thin:@localhost:1521:XE

访问oracle的XE2数据库
jdbc:oracle:thin:@localhost:1521:XE2

你觉得用第一个URL获得的connection能找到XE2的orders表么?

------解决方案--------------------
<class name="com.crm.report.entity.Orders" table="dbo.orders">

------解决方案--------------------
帮顶!
------解决方案--------------------
这个怎么帮啊 一一对应呗!
------解决方案--------------------