如何仅使用Java和注释在Spring中设置以下内容。
<property name="hibernate.hbm2ddl.auto" value="update"/>
我应该是可能的,我相信让xml项目免费更清洁。
PS:这不重要但我在Heroku上运行它。
答案 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类中对其进行硬编码。实际上,自动模式生成通常是您在测试/暂存期间才会执行的操作。因此,您可能有不同的环境,具有不同的设置。