проблема спящего режима - PullRequest
2 голосов
/ 27 мая 2010

Я пытаюсь разобраться с тем, что делает hibernate под капотом, и я использую p6spy в качестве прокси для драйвера mysql jdbc, чтобы я мог видеть, что на самом деле происходит с базой данных. Я немного смущен выходом из 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, я ТОЛЬКО увижу эту странную, мошенническую линию.

Спасибо за любое освещение!

Ответы [ 3 ]

2 голосов
/ 27 мая 2010

Ах, я вижу проблему, которая, по-видимому, связана с тем, что я должен сказать, что это довольно неожиданное дизайнерское решение в p6spy.

По-видимому, для пакетных операторов было принято решение регистрировать операторы по мере их добавления в пакет, а затем показывать оператор LAST, выполненный при фактическом выполнении пакета! Как только вы поймете, что это именно то, что делает инструмент, я думаю, вы поймете, почему он есть, но он полностью запутан и не интуитивен, если вы случайно не прочитали нить здесь:

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

0 голосов
/ 09 января 2013

В файле * spy.propertie * s свойство по умолчанию excludecategories равно [info,debug,result,batch], Вы можете исключить категорию batch, тогда вы получите то, что хотите.

0 голосов
/ 15 декабря 2010

Хвост (513) выглядит как часть метки времени alt text

...