Вывод sql запросов в консоли в Grails

Для того, чтобы посмотреть какие запросы к базе формирует hibernate в grails в настройках нужно добавить следующие параметры:

Все делается в DataSource.groovy

dataSource {
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
    username = "*****"
    password = "*****"
    logSql = true 
}

logSql – Этот параметр включает вывод в stdout (в моем случае в консоль) sql запросов. Можно также использовать loggingSql=true

Дополнительно можно включить форматирование выводимых sql запросов, чтобы было удобней их читать. В этом же файле – DataSource.groovy

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = false
    cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' 
    singleSession = true 
    flush.mode = 'manual'
    format_sql = true 
}

format_sql – Этот параметр включает форматирование выводимых sql запросов

В результате будет примерно такой вывод:

Hibernate: 
    drop table if exists role
Hibernate: 
    drop table if exists user
Hibernate: 
    drop table if exists user_role
Hibernate: 
    create table role (
        id bigint not null auto_increment,
        version bigint not null,
        authority varchar(255) not null,
        primary key (id)
    )
Hibernate: 
    create table user (
        id bigint not null auto_increment,
        version bigint not null,
        account_expired bit not null,
        account_locked bit not null,
        enabled bit not null,
        `password` varchar(255) not null,
        password_expired bit not null,
        username varchar(255) not null,
        primary key (id)
    )
Hibernate: 
    create table user_role (
        role_id bigint not null,
        user_id bigint not null,
        primary key (role_id, user_id)
    )
Hibernate: 
    alter table role 
        add constraint UK_irsamgnera6angm0prq1kemt2  unique (authority)
Hibernate: 
    alter table user 
        add constraint UK_sb8bbouer5wak8vyiiy4pf2bx  unique (username)
Hibernate: 
    alter table user_role 
        add constraint FK_it77eq964jhfqtu54081ebtio 
        foreign key (role_id) 
        references role (id)
Hibernate: 
    alter table user_role 
        add constraint FK_apcc8lxk2xnug8377fatvbn04 
        foreign key (user_id) 
        references user (id)

Leave a Reply

Your email address will not be published. Required fields are marked *