如何使用HibernateJpaVendorAdapter记录可管理的DDL

时间:2013-04-19 07:38:51

标签: hibernate logging spring-data-jpa hbm2ddl

在以前的项目中,我使用hbm2ddl中的hibernate3-maven-plugin任务生成DDL代码 - 我在启用调试输出的情况下运行了maven任务,并以可接受的方式将DDL记录到控制台。实际上,我使用此代码作为部署的初始迁移。配置是这样的:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>3.0</version>
<configuration>
  <hibernatetool>
    <annotationconfiguration
      configurationfile="src/main/resources/db/database/config/annotatedhibernate.cfg.xml"
      propertyfile="src/main/resources/db/database/config/hibernate.properties" />
    <hbm2ddl drop="true" create="true" delimiter=";" format="true" console="true" outputfilename="output.ddl" />
  </hibernatetool>
</configuration>

现在我发现了spring-data-jpa之美,并将HibernateJpaVendorAdapter配置为生成我的DDL代码。很快,我希望部署并喜欢将可管理的DDL代码记录到控制台(或某个地方),但我只想出如何设置和配置hibernate日志记录并能够设置日志级别和内容 - 但是美丽的DDL就像在maven调试永远不会出现。如何使用HibernateJpaVendorAdapter启用它。目前的配置如下:

<bean id="hibernateJpaVendorAdapter"
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
  <property name="generateDdl" value="true" />
  <property name="showSql" value="true" />
</bean>

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
  <property name="jpaProperties">
    <props>
      <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
      <prop key="hibernate.show_sql">true</prop>
    </props>
  </property>
  <property name="packagesToScan" value="my.recipes.api.impl" />
</bean>

0 个答案:

没有答案