Prikaži hibernate / JPA SQL izjave iz Spring Boot-a

1. Pregled

Proljetni JDBC i JPA pružaju apstrakcije preko izvornih JDBC API-ja omogućavajući programerima da uklone nativne SQL upite. Međutim, često moramo vidjeti one automatski generirane SQL upite i redoslijed kojim su izvršeni u svrhu uklanjanja pogrešaka.

U ovom ćemo brzom vodiču pogledati različite načine bilježenja ovih SQL upita u Spring Boot-u.

2. Zapisivanje JPA upita

2.1. Na standardni izlaz

Najjednostavniji je način da se upiti izbace na standardni način dodavanjem sljedećeg primjena.svojstva:

proljeće.jpa.show-sql = true

Da bismo uljepšali ili lijepo ispisali SQL, možemo dodati:

proljeće.jpa.properties.hibernate.format_sql = true

Iako je ovo vrlo jednostavno, nije preporučljivo jer izravno rasterećuje sve na standardni izlaz bez ikakvih optimizacija okvira za bilježenje.

Štoviše, ne bilježi parametre pripremljenih izjava.

2.2. Preko drvosječa

Sada, pogledajmo kako možemo zapisati SQL izraze konfiguriranjem zapisnika u datoteci svojstava:

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

Prvi redak bilježi SQL upite, a drugi izraz zapisuje pripremljene parametre izraza.

Lijepo svojstvo ispisa radit će i u ovoj konfiguraciji.

Postavljanjem ovih svojstava, zapisnici će se poslati konfiguriranom dodavaču. Prema zadanim postavkama Spring Boot koristi prijava sa standardnim vanjskim dodavačem.

3. Sječa drva JdbcTemplate Upiti

Za konfiguriranje zapisnika izjava prilikom upotrebe JdbcTemplate, trebaju nam sljedeća svojstva:

logging.level.org.springframework.jdbc.core.JdbcTemplate = DEBUG logging.level.org.springframework.jdbc.core.StatementCreatorUtils = TRACE

Slično konfiguraciji evidentiranja JPA, prvi redak je za bilježenje izraza, a drugi je zapisivanje parametara pripremljenih izraza.

4. Kako to djeluje?

Predavanja za proljeće / hibernaciju, koji generiraju SQL izraze i postavljaju parametre, već sadrže kod za njihovo bilježenje.

Međutim, razina tih naredbi dnevnika postavljena je na DEBUG i TRAG što je niže od zadane razine u Spring Boot - INFO.

Dodavanjem ovih svojstava, mi samo postavljamo te zapisnike na potrebnu razinu.

5. Zaključak

U ovom smo kratkom članku pogledali načine evidentiranja SQL upita u Spring Boot-u.

Ako odlučimo konfigurirati više dodataka, također možemo razdvojiti SQL izraze i druge izraze dnevnika u različite datoteke dnevnika kako bi stvari bile čiste.


$config[zx-auto] not found$config[zx-overlay] not found