Maison  >  Questions et réponses  >  le corps du texte

Comment afficher les requêtes SQL émises par Hibernate pour définir le niveau de transaction et la validation automatique

Sur mon serveur MySQL, dans les logs généraux je vois beaucoup de logs comme ceci :

2023-03-31T09:31:23.208-07:00   2023-03-31T16:31:23.208345Z37028 Query SET autocommit=0
2023-03-31T09:31:23.211-07:00   2023-03-31T16:31:23.211201Z36956 Query set session transaction read write
2023-03-31T09:31:23.211-07:00   2023-03-31T16:31:23.211807Z36957 Query /* dynamic native SQL query */ select now() /*app health check*/
2023-03-31T09:31:23.255-07:00   2023-03-31T16:31:23.255990Z36995 Query set session transaction read write
2023-03-31T09:31:23.273-07:00   2023-03-31T16:31:23.273013Z36957 Query set session transaction read write
2023-03-31T09:31:23.276-07:00   2023-03-31T16:31:23.276323Z36956 Query SET autocommit=0
2023-03-31T09:31:23.320-07:00   2023-03-31T16:31:23.320214Z36995 Query SET autocommit=0
2023-03-31T09:31:23.334-07:00   2023-03-31T16:31:23.334801Z36957 Query SET autocommit=0
2023-03-31T09:31:23.461-07:00   2023-03-31T16:31:23.461897Z37056 Query rollback

Cependant, j'aimerais les voir dans les journaux des clients. Je suis très rouillé avec Java, alors soyez indulgents avec moi. Si cela peut aider, la question que je pose ressemble beaucoup à celle-ci, même si la réponse acceptée ne l'a pas non plus résolue pour moi (c'est une question distincte) :/

J'ai un fichier YAML et j'essaie d'activer les fonctionnalités suivantes :

logging:
  levels:
  - path: org.hibernate
    value: trace
  - path: org.hibernate.SQL
    value: debug
  - path: org.jooq
    value: trace
  - path: com.amazonaws
    value: debug
  - path: com.zaxxer
    value: debug
  - path: com.mysql
    value: debug
  - path: org.hibernate.engine.transaction.internal.TransactionImpl
    value: debug
  - path: com.mysql.clusterj.core.TransactionImpl
    value: debug
  - path: org.hibernate.jpa.internal.TransactionImpl
    value: debug

P粉734486718P粉734486718372 Il y a quelques jours496

répondre à tous(1)je répondrai

  • P粉155128211

    P粉1551282112023-09-14 09:03:53

    Hibernate n'envoie pas ces requêtes. C'est le driver JDBC qui les envoie. L'API JDBC pertinente est java.sql.Connection.setAutoCommit(), qui, dans un environnement de conteneur, est généralement appelée par un pool de connexions.

    répondre
    0
  • Annulerrépondre