2

私は 、Seam、および Jboss を使用して ERP を作成しているチームの一員です。自分のページの 1 つで、何かを入力しようとすると常に SQL エラー 8152 が発生します。SQL エラー:8152 は、列の上限を超える値を入力しようとしたときに発生するエラーです。

エンティティとデータベースを再確認しましたが、最大値の制限は同じです (50 nvarchars)。さらに、監査テーブルを使用していないことは確かです。次に System.out.println(""); を入れます。いたるところで、これら2つのprintlnの間でエラーが発生していることがわかりました:

            System.out.println("Flushing");
        entityManager.flush();
        System.out.println("Flushing complete");

これは、テーブルへのすべての変更を処理するメソッドの一部です。しかし、私はプログラミングにかなり慣れていないので、何が起こっているのかわかりません。

ジェフ、事前に感謝します。

リクエストに応じて Ps コードを公開しましたが、あちこちにたくさんあるので投稿しませんでした。

4

1 に答える 1

0

flush() が実行されたときに実行されている SQL を確認します。そうすれば、データの長さを確認し、DB エラーで示されるように長すぎることを確認できます。

Hibernate を使用している場合は、コンソールに SQL を出力できます。DB が何であるかはわかりませんが、それが SQL Server の場合は、プロファイラーを使用してどの SQL が実行されているかを確認できます。

于 2011-06-09T13:29:25.257 に答える