2010-09-30 8 views
14

Cytat z persistence.xml:Jak zrobić schemat hhm2ddl schemaExport do logowania na standardowe wyjście?

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

To co widzę w wyjściowych dziennika:

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 

Ale nie widzę schematu (SQL) wywożone się. Jak uzyskać te informacje z Hibernate (3.5.6-Final)?

Odpowiedz

14

Aktywuj rejestrowanie kategorii org.hibernate.tool.hbm2ddl na DEBUG.


Aktualizacja: Oto uproszczony logback.xml (używam logback jako rejestrowania backend):

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

dostosować ją jeśli używasz log4j (znajdziesz tu na konfigurację roboczą WIĘC).

+0

mógłbyś schować mnie jak dokładnie mogę to zrobić, jeśli używam slf4j i nie mają żadnych plików konfiguracyjnych rejestrowanie jeszcze .. – yegor256

4

Na wszelki wypadek możesz natknąć się na to przy użyciu Spring Boot. Można skonfigurować następujące ustawienia w swojej 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

To było bardzo pomocne. Jedno szybkie pytanie: Jakiej konfiguracji użyć, aby wyeksportować zarejestrowany schemat do pliku? – aksinghdce

0

Oto uproszczony log4j.xml konfiguracja.

<?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> 
Powiązane problemy