5

私は hibernate がフードの下で何をしているのかを把握しようとしています。また、p6spy を mysql jdbc ドライバーのプロキシとして使用しているので、データベースに実際に何が行われているのかを確認できます。ただし、p6spy からの出力には少し混乱しています。光に感謝します。

問題はこれです。クラス Test1 の 2 つの新しいオブジェクト、つまり test1a と test1b を作成しています。ログの出力は次のとおりです。

Hibernate: 
    /* insert com.play.hibernate1.Test1
        */ insert 
        into
            Test1
            (name, value, id) 
        values
            (?, ?, ?)
1274973057265|1|1|batch|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values (?, ?, ?)|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values ('Test 1', 10, 5)
Hibernate: 
    /* insert com.play.hibernate1.Test1
        */ insert 
        into
            Test1
            (name, value, id) 
        values
            (?, ?, ?)
1274973057265|0|1|batch|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values (?, ?, ?)|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values ('Test 2', 20, 6)
1274973057267|2|1|statement|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values (?, ?, ?)|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values ('Test 2', 20, 6)
1274973057268|0|1|commit||

おそらく jdbc addBatch API への呼び出しからの 2 つの「バッチ」ステートメントが表示されますが、「1274973057267|2|1|ステートメント」はそこで何をしているのですか? 2番目の挿入が繰り返されているように見えますが、そうではないことを知っているか、データベースに2行ではなく3行、または少なくともエラーが表示されます。

2 番目の挿入ステートメントが繰り返されるのはなぜですか?

spy.properties で「バッチ」を除外すると、この奇妙で不正な行しか表示されません。

イルミネーションをありがとう!

4

3 に答える 3

4

ああ-私が言わなければならないことが原因であると思われる問題は、p6spyでのかなり驚くべき設計上の決定であると思います。

どうやらバッチステートメントの場合、ステートメントがバッチに追加されたときにステートメントをログに記録し、バッチが実際に実行されたときに実行されたLASTステートメントを表示することが決定されました。それがツールの機能であることがわかったら、なぜそこにあるのか理解できると思いますが、ここのスレッドを読んだことがない限り、完全に混乱し、直感に反します。

http://sourceforge.net/projects/p6spy/forums/forum/166969/topic/666877

于 2010-05-27T15:33:17.420 に答える
3

spy.propertiesファイルでは、のデフォルトのプロパティはexcludecategoriesです。カテゴリ[info,debug,result,batch]を除外するbatchと、必要なものが得られます。

于 2013-01-09T10:23:14.087 に答える
0

その末尾 (513) は、タイムスタンプの一部のように見えます代替テキスト

于 2010-12-15T15:32:37.143 に答える