如何使用Annotations和纯Java在Spring中设置hibernate.hbm2ddl.auto

时间:2015-10-01 22:11:18

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

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

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

我应该是可能的,我相信让xml项目免费更清洁。

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

2 个答案:

答案 0 :(得分:3)

将此添加到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 :对于此行hibernateProperties.setProperty("hibernate.hbm2ddl.auto","update");,如果update不适合您,请查看此stackoverflow question以确定最佳值。

答案 1 :(得分:0)

我认为没有为hbm2ddl开箱即用的Java注释。

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

请参阅:https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/

通常我宁愿建议您在属性文件中外部化设置,而不是在Java类中对其进行硬编码。实际上,自动模式生成通常是您在测试/暂存期间才会执行的操作。因此,您可能有不同的环境,具有不同的设置。