2010-09-30 16 views
14

Una cita de persistence.xml:¿Cómo hacer que hbm2ddl schemaExport registre esquema en stdout?

<persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> 
    <properties> 
     <property name="hibernate.archive.autodetection" value="class" /> 
     <property name="hibernate.show_sql" value="true" /> 
     <property name="hibernate.format_sql" value="true" /> 
     <property name="hibernate.hbm2ddl.auto" value="create" /> 
     ... 
    </properties> 
</persistence-unit> 

Esto es lo que veo en la salida del registro:

Sep 30, 2010 12:03:43 PM org.hibernate.tool.hbm2ddl.SchemaExport execute 
INFO: Running hbm2ddl schema export 
Sep 30, 2010 12:03:43 PM org.hibernate.tool.hbm2ddl.SchemaExport execute 
INFO: exporting generated schema to database 
Sep 30, 2010 12:03:43 PM org.hibernate.tool.hbm2ddl.SchemaExport execute 
INFO: schema export complete 

Pero no veo el esquema (SQL) exportó en sí. ¿Cómo obtener esta información de Hibernate (3.5.6-Final)?

Respuesta

14

Activar el registro de la categoría org.hibernate.tool.hbm2ddl en DEBUG.


Actualización: Aquí es una simplificada logback.xml (estoy usando logback como backend de registro):

<configuration scan="true"> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern> 
    </layout> 
    </appender> 

    <!-- ### log just the SQL ### --> 
    <logger name="org.hibernate.SQL" level="DEBUG"/> 

    <!-- ### log JDBC bind parameters ### --> 
    <logger name="org.hibernate.type" level="TRACE"/> 

    <logger name="org.hibernate.tool.hbm2ddl" level="DEBUG"/> 

    <root level="ERROR"> 
    <appender-ref ref="STDOUT"/> 
    </root> 
</configuration> 

Adáptelo si utiliza log4j (lo encontrará aquí en configuración de trabajo ASI QUE).

+0

¿Me podría sugerir cómo es exactamente lo que puedo hacer esto, si estoy usando SLF4J y no tienen ningún archivo de configuración de registro todavía .. – yegor256

4

Por si acaso se topa con esto usando Spring Boot. Se puede configurar lo siguiente en su application.yml:

spring.jpa: 
    hibernate.ddl-auto: create-drop 
logging.level:    
    org.hibernate.tool.hbm2ddl: DEBUG 
    org.hibernate.SQL: DEBUG 
    org.hibernate.type: TRACE 
+0

Esto fue bastante útil. Una pregunta rápida: ¿Qué configuración usar para exportar el esquema registrado a un archivo? – aksinghdce

0

Aquí es una configuración simplificada log4j.xml.

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration> 
    <appender name="CA" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/> 
     </layout> 
    </appender> 
    <!-- ### log just the SQL ### --> 
    <logger name="org.hibernate.SQL"> 
     <level value="DEBUG" /> 
    </logger> 
    <!-- ### log JDBC bind parameters ### --> 
    <logger name="org.hibernate.type"> 
     <level value="TRACE" /> 
    </logger> 
    <!-- ### log Hibernate model to schema tool ### --> 
    <logger name="org.hibernate.tool.hbm2ddl"> 
     <level value="DEBUG" /> 
    </logger> 
    <root> 
     <level value="WARN"/> 
     <appender-ref ref="CA"/> 
    </root> 
</log4j:configuration> 
Cuestiones relacionadas