我正在使用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'
我在测试服务器上部署时遇到此错误,但是当我在我的本地服务器上检查相同的东西时我工作正常,当我直接在测试服务器上的数据库上运行此查询时,它返回结果。所以它确认测试服务器上的数据库没问题。只有当它通过测试服务器上的应用程序执行时才会出现此错误。
任何人都可以让我知道可能是什么原因或我如何调试它。 提前致谢。期待回复。
答案 0 :(得分:1)
如果您的数据库中确实有quality_status
列,那么您应确保在测试服务器上部署了最新版本的应用程序,并确保hibernate的连接URL确实指向测试数据库。
这不是一个休眠问题,不是编程问题。环保 - 检查您的配置并重新部署。