【问题标题】:How to set hibernate.hbm2ddl.auto in Spring with Annotations and pure Java如何在 Spring 中使用注释和纯 Java 设置 hibernate.hbm2ddl.auto
【发布时间】:2015-12-30 02:26:12
【问题描述】:

如何在 Spring 中仅使用 Java 和注释来设置以下内容。

<property name="hibernate.hbm2ddl.auto" value="update"/>

我应该是可能的,而且我相信让项目 xml 变得免费会更干净。

PS:这应该不重要,但我在 Heroku 上运行它。

【问题讨论】:

    标签: java spring hibernate spring-annotations hibernate-annotations


    【解决方案1】:

    我认为没有现成的用于 hbm2ddl 的 Java 注释。

    Hibernate 使用标准的 Java Persistance Annotations (JPA) 以及一些 Hibernate 扩展注释。

    见:https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/

    一般来说,我宁愿建议您将设置外部化到属性文件中,而不是在 Java 类中硬编码。实际上,自动模式生成通常是您只会在测试/登台期间执行的操作。所以你可能有不同的环境和不同的设置。

    【讨论】:

      【解决方案2】:

      将此添加到 dataSource() 所在的类中,它解决了我的问题。

      final Properties hibernateProperties() {
          final Properties hibernateProperties = new Properties();
      
          hibernateProperties.setProperty("hibernate.hbm2ddl.auto", "update");
          hibernateProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
          hibernateProperties.setProperty("hibernate.show_sql", "true");
      
          return hibernateProperties;
      }
      

      完整的例子在这里https://github.com/arose13/Heroku-Spring-Postgres-Example

      编辑 PS:如果update 不适合您,请查看此行stackoverflow question 以找出最佳价值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-14
        • 1970-01-01
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        • 2013-07-18
        • 2016-03-02
        相关资源
        最近更新 更多