Ricerca…


Osservazioni

La registrazione di queste query è lenta , anche più lenta di quanto lo sia Hibernate. Utilizza anche una quantità enorme di spazio di log. Non utilizzare la registrazione in scenari in cui è richiesta una prestazione. Usalo solo quando collaudi le query che Hibernate genera effettivamente.

Utilizzando un file di configurazione di registrazione

Nel file di configurazione di registrazione di tua scelta imposta la registrazione dei seguenti pacchetti ai livelli mostrati .:

# log the sql statement
org.hibernate.SQL=DEBUG
# log the parameters
org.hibernate.type=TRACE

Ci saranno probabilmente dei prefissi specifici per i logger che sono richiesti.

Log4j config:

log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE

Spring Boot application.properties :

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE

Logback logback.xml :

<logger name="org.hibernate.SQL" level="DEBUG"/>
<logger name="org.hibernate.type" level="TRACE"/>

Usando le proprietà di ibernazione

Questo mostrerà l'SQL generato, ma non mostrerà i valori contenuti nelle query.

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="hibernateProperties">
        <props>
            <!-- show the sql without the parameters -->
            <prop key="hibernate.show_sql">true</prop>
            <!-- format the sql nice -->
            <prop key="hibernate.format_sql">true</prop>
            <!-- show the hql as comment -->
            <prop key="use_sql_comments">true</prop>
        </props>
    </property>
</bean>

Abilita / Disabilita il log di debug di SQL

Alcune applicazioni che utilizzano Hibernate generano un'enorme quantità di SQL all'avvio dell'applicazione. A volte è meglio abilitare / disabilitare il log SQL in punti specifici durante il debug.

Per abilitare, basta eseguire questo codice nel tuo IDE quando esegui il debug dell'applicazione:

org.apache.log4j.Logger.getLogger("org.hibernate.SQL")
    .setLevel(org.apache.log4j.Level.DEBUG)

Disabilitare:

org.apache.log4j.Logger.getLogger("org.hibernate.SQL")
    .setLevel(org.apache.log4j.Level.OFF)


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow