SQL异常:where子句中的未知列

时间:2010-12-28 05:14:33

标签: mysql hibernate

我正在使用Hibernate3和spring应用程序。 我在现有表中引入了一个列,与.hbm文件中的添加有多对一的关系,如下所述:

<many-to-one name="qualityStatus" column="quality_status" 
    class="model.PurchaseStatus" lazy="false" fetch="join"/>

此hbm的相应对象具有“PurchaseStatus”类型的属性,字段名称为“qualityStatus”。

现在,当我尝试使用查询从表中提取表示上述对象的数据时:

List<Long> dnIds = session.createQuery("select dnItem.dnId from DeliveryNoteItem dnItem where dnItem.qualityStatus!=? and dnItem.qualityStatus!=? and dnItem.qualityStatus!=?")
       .setInteger(0,1)
       .setInteger(1,5)
       .setInteger(2,7)
       .list();

我收到错误消息'java.sql.Exception: Unknown column 'deliveryno0_.quality_status' in 'where clause' 我在测试服务器上部署时遇到此错误,但是当我在我的本地服务器上检查相同的东西时我工作正常,当我直接在测试服务器上的数据库上运行此查询时,它返回结果。所以它确认测试服务器上的数据库没问题。只有当它通过测试服务器上的应用程序执行时才会出现此错误。

任何人都可以让我知道可能是什么原因或我如何调试它。 提前致谢。期待回复。

1 个答案:

答案 0 :(得分:1)

如果您的数据库中确实有quality_status列,那么您应确保在测试服务器上部署了最新版本的应用程序,并确保hibernate的连接URL确实指向测试数据库。

这不是一个休眠问题,不是编程问题。环保 - 检查您的配置并重新部署。