2010-12-28 20 views
0

SpringアプリケーションでHibernate3を使用しています。SQL例外:where句の不明な列

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

このHBMに対応するオブジェクトが、タイプのプロパティ「PurchaseStatus」とフィールド名があります。後述するように、私は.hbmファイルに追加して1人の関係に多くのと私の既存のテーブルの列を導入 '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

データベースに実際にquality_statusという列がある場合は、アプリケーションの最新バージョンをテストサーバーに展開し、hibernateの接続URLが実際にテストデータベースを指していることを確認する必要があります。

これは休止状態の問題ではなく、プログラミング上の問題ではありません。それは環境です - あなたの設定を確認し、再デプロイしてください。