Question

Je suis en train de se familiariser avec ce que mise en veille prolongée est en train de faire sous le capot, et je l'utilise P6Spy comme proxy pour le pilote MySQL jdbc pour que je puisse voir ce qui se passe vraiment à la base de données. Je suis un peu confus par la sortie de P6Spy cependant - reconnaissant pour toute lumière

Le problème est. Je crée deux nouveaux objets de la classe Test1, à savoir test1a et test1b. La sortie dans mes journaux est la suivante:

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||

Je vois deux déclarations « batch », vraisemblablement d'appels à l'api jdbc addBatch, mais qu'est-ce que « 1274973057267 | 2 | 1 | déclaration » faire là-bas? Il semble que le deuxième insert est se répète, mais je sais que ce n'est pas ou je voyais 3 lignes dans ma db et pas deux, ou au moins une erreur.

Pourquoi je vois que je suis la deuxième instruction d'insertion répétée?

Si j'exclude « lot » dans mes spy.properties, je ne vois que ce bizarre, ligne voyous.

Merci pour toute illumination!

Était-ce utile?

La solution

Ah - je vois le problème, qui semble être dû à ce que je dois dire est une décision de conception assez surprenante dans P6Spy

.

Apparemment, pour les déclarations par lots, la décision a été prise pour consigner les instructions car ils sont ajoutés au lot, puis afficher la dernière instruction exécutée lorsque le lot est effectivement exécuté! Une fois que vous savez que ce que l'outil fait, je suppose que vous pouvez comprendre pourquoi il est là, mais il est complètement confus et contre-intuitif à moins que vous arrive d'avoir lu ici le fil:

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

Autres conseils

Dans le fichier * spy.propertie *, la propriété par défaut de excludecategories est [ info,debug,result,batch ], Vous pouvez exclure les batch catégorie, alors vous obtiendrez ce que vous voulez.

La fin de la queue de celui-ci (513) ressemble à une partie de l'horodatage text alt

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top