日期:2014-05-18  浏览次数:20722 次

请教hibernate高手!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我的开发工具myeclipse6.0+sql2000+hibernate3.0

在写映射文档中
使用<property name="totalPrice" 
  formula="(SELECT SUM(o.PRICE)
  FROM orders o
  WHERE o.CUSTOMER_ID = ID)"/>
老报错!提示
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'orders' 无效。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
at org.hibernate.loader.Loader.doQuery(Loader.java:662)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
请大家帮忙!

------解决方案--------------------
SQL> FROM orders o 
 好象是 FROM orders AS o 吧?

------解决方案--------------------
SQL > FROM orders o 可以省略AS的。。。
先确定下有没有这张表,然后看映射的库名,表名对不对吧
------解决方案--------------------
FROM orders o 
这里的orders是映射的名字,一般第一个字母为大写吧,你去看看吧
------解决方案--------------------

表不存在

又或者你登录的账号的user有问题
------解决方案--------------------
初步估计是大小写问题

你的class应该是Orders 把

改成这个名字
------解决方案--------------------
你登陆的用户账号有问题!!!
------解决方案--------------------
那个表orders要和对应pojo的名字一样,大小写也要相同,改一下看看.
------解决方案--------------------
orders是不是应该是Orders
class名大写
------解决方案--------------------
呵呵 ~~~~~~~`谢谢楼主分享
------解决方案--------------------
orders应该是这个问题、
------解决方案--------------------
呵呵.楼上几位兄弟都说的差不多了..
------解决方案--------------------
orders表的问题或者是Orders类的问题...
------解决方案--------------------
建议你试用全名访问 例如 <property name="totalPrice" 
formula="(SELECT SUM(o.PRICE)
FROM net.csdn.orders as o
WHERE o.CUSTOMER_ID = ID)"/ > 

自己试一试 可能你的 orders 在数据中是关键字 呵呵
------解决方案--------------------