我試圖去弄清楚hibernate在底層做了什麼,我使用p6spy作爲mysql jdbc驅動程序的代理,以便我可以看到數據庫到底是什麼。然而,我對p6spy的輸出有點困惑 - 感謝任何燈光!hibernate p6spy問題
問題是這樣的。我創建了Test1類的兩個新對象,即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,但什麼是「1274973057267 | 2 | 1點|聲明」在那裏做什麼?它看起來像第二個插入重複,但我知道它不是,或者我會看到在我的數據庫3行,而不是兩個,或至少一個錯誤。
爲什麼我看到重複的第二條插入語句?
如果我在我的spy.properties中排除'batch',我只能看到這個奇怪的流氓線。
感謝您的任何照明!