Métodos de registro do Hibernate

Saudações, queridos amigos! Meu nome é Alexey, sou desenvolvedor de produção de RH. Neste artigo, proponho discutir as formas de registrar o Hebernate.





O Hibernate é uma ótima ferramenta para fazer o trabalho, especialmente quando funciona bem e com rapidez, mas quando surgem problemas, você precisa ver o que está acontecendo nos bastidores. Exemplos de configuração serão fornecidos no Spring.





A primeira e mais fácil maneira

Especifique em application.properties: spring.jpa.show-sql=true



ouspring.jpa.properties.hibernate.show_sql=true).







Essa abordagem permite que você resolva o problema rapidamente e ajude a encontrar bugs localmente. Mas existem duas desvantagens óbvias:





1. A saída sql não passa por nosso logger e não tem um formato conveniente para nós.





2. .





— properties,

logging.level.org.hibernate.SQL=DEBUG







logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE







, . , .





— proxy

log4jdbc p6spy. , log4jdbc .





<groupId>com.integralblue</groupId>







log4jdbc-spring-boot-starter







<groupId>com.github.gavlyukovskiy</groupId>







p6spy-spring-boot-starter







, . : , . p6spy.





- .





decorator.datasource.p6spy.log-filter.pattern=.*insert.*



insert .





. . :





Na verdade, precisamos filtrar os logs necessários por algum atributo. Decidi fazer isso usando MDC, seu escopo é apenas ThreadLocal, o que nos convém. Vamos fazer um filtro:





Fiz o processador de anotações por meio de um aspecto:





Bem, a configuração usando o exemplo do Logback:





Vamos criar um anexador adicional com um filtro e passar os logs p6spy do nível de informação através dele e não se esqueça de especificar aditividade = "false" para que o anexador raiz não processe o mesmo pacote. Isso é tudo. Não se esqueça que o fizemos através de um proxy, o que significa que temos limitações na escolha dos métodos sobre os quais podemos colocar uma nova anotação.





Isso é tudo. A esperança foi útil!








All Articles