2011-06-08 9 views
2

私は、SeamとJbossを使用してERPを作成しているチームの一員であり、私のページの1つでは、私は何かを入力しようとするとSQLエラー:8152を取得し続けます。 SQLエラー:8152は、わからない人のために、列の上限を超えて値を入力しようとするときです。SQLエラー:8152ですが、最大値を超えていませんか?

私は自分のエンティティとデータベースを二度チェックしましたが、最大値の制限は同じです(50 nvarchars)。さらに、私は監査テーブルを使用していないと確信しています。次に、System.out.println( "");を入れます。すべての場所で、エラーは、これら2つのprintln(S)との間で起こったことがわかっ:

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

テーブルへのすべての変更を処理する方法の一部です。しかし、私はプログラミングには新しく、何が起こっているのか分からない。

ご協力いただきまして、ありがとうございます、Jeff。

p.s.要求に応じてコードしますが、場所全体に多くのものがあるので、私は投稿しませんでした。

+0

flush()は、保留中のすべてのデータベース変更をデータベースに強制的に書き込むため、他のすべての関連エンティティが例外をスローする可能性があります。例外スタックを慎重に検討してください。 – MicSim

答えて

0

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

Hibernateを使用している場合は、SQLをコンソールに出力できます。あなたはあなたのDBが何であるかは言わないが、それがSQL Serverならプロファイラを使ってどのSQLが実行されているかを知ることができる。

関連する問題