java स्कीमा को स्टेडाउट में लॉग करने के लिए hbm2ddl स्कीमा निर्यात कैसे करें?




hibernate orm (3)

persistence.xml से एक उद्धरण। persistence.xml :

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

यह है कि मैं लॉग इन आउटपुट में देखता हूं:

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

लेकिन मुझे स्कीमा (एसक्यूएल) खुद ही निर्यात नहीं दिख रहा है हाइबरनेट (3.5.6-फाइनल) से इस जानकारी को कैसे प्राप्त करें?


यहां एक सरल 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>

org.hibernate.tool.hbm2ddl श्रेणी के प्रवेश को DEBUG सक्रिय करें।

अद्यतन: यहां एक सरल logback.xml (मैं बैकएंड लॉगिंग के रूप में लॉगबैक का उपयोग कर रहा हूं):

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

अगर आप log4j का उपयोग कर रहे हैं तो इसे अनुकूलित करें (आप यहां पर कॉन्फ़िगरेशन का काम कर पाएंगे)


बस आप स्प्रिंग बूट का उपयोग कर इस पर ठोकर खाई। आप अपने application.yml में निम्नलिखित कॉन्फ़िगर कर सकते हैं:

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




hbm2ddl