2010-09-30 10 views
14

Una citazione da persistence.xml:Come creare lo schema hbm2ddlExport per registrare lo schema su 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> 

Questo è quello che vedo in uscita 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 

Ma non vedo lo schema (SQL) si esportato. Come ottenere questa informazione da Hibernate (3.5.6-Final)?

risposta

14

Attivare la registrazione della categoria org.hibernate.tool.hbm2ddl su DEBUG.


Aggiornamento: Ecco una semplificata logback.xml (sto usando logback come la registrazione di back-end):

<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> 

adeguandolo se si utilizza log4j (troverete configurazione di lavoro qui in COSÌ).

+0

La prego di suggerire esattamente come posso fare questo, se sto usando SLF4J e non hanno i file di configurazione di registrazione ancora .. – yegor256

4

Nel caso in cui si imbattesse in questo utilizzando Spring Boot. È possibile configurare il seguente nella vostra 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

Questo è stato molto utile. Una domanda veloce: quale configurazione utilizzare per esportare lo schema registrato in un file? – aksinghdce

0

Ecco una configurazione semplificata 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> 
Problemi correlati