Hibernate p6spy Problem
Frage
Ich versuche, in dem Griff zu bekommen, was winter unter der Haube tun, und ich bin mit p6spy als Proxy für die MySQL JDBC-Treiber, so kann ich sehen, was wirklich in die Datenbank gehen. Ich bin ein wenig durch die Ausgabe von p6spy verwechselt jedoch - dankbar für jedes Licht
!Das Problem ist dies. Ich erstelle zwei neue Objekte der Klasse Test1, nämlich test1a und test1b. Die Ausgabe in meinem Logs ist wie folgt:
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||
kann ich zwei ‚Partie‘ Aussagen sehen, die vermutlich aus Anrufen an der jdbc addBatch api, aber was ist die ‚1274973057267 | 2 | 1 | Aussage‘ da? Es sieht aus wie der zweite Einsatz wird wiederholt immer, aber ich weiß, es ist nicht, oder ich würde drei Reihen in meiner db und nicht zwei, oder zumindest einen Fehler sehen.
Warum ich sehe ich die zweite Insert-Anweisung wiederholt?
Wenn ich ‚Partie‘ ausschließen in meinem spy.properties, ich sehe nur diese seltsame, gauner Linie.
Vielen Dank für jede Beleuchtung!
Lösung
Ah - ich sehe das Problem, die aufgrund zu sein scheint, was ich zu sagen habe, ist eine ziemlich überraschende Design-Entscheidung in p6spy
.Offenbar für batched Aussagen, wurde die Entscheidung getroffen Aussagen zu protokollieren, wie sie in den Ansatz gegeben werden und zeigt dann die letzte Anweisung ausgeführt wird, wenn der Ansatz tatsächlich ausgeführt wird! Sobald Sie feststellen, dass die wissen, was das Werkzeug der Fall ist, glaube, ich kann Sie verstehen, warum es da ist, aber es ist völlig verwirrend und kontraintuitiv, wenn Sie den Thread gelesen passieren hier haben:
http://sourceforge.net/projects/p6spy/forums / forum / 166969 / Thema / 666.877
Andere Tipps
* spy.propertie * s-Datei, die Standardeigenschaft von excludecategories
ist [ info,debug,result,batch
],
Sie können ausschließen, die batch
Kategorie, dann werden Sie bekommen, was Sie wollen.
Das hintere Ende davon (513) sieht aus wie ein Teil des Zeitstempel