如何设置休眠。hbm2ddl.auto in Spring with Annotations and pure Java
How to set hibernate.hbm2ddl.auto in Spring with Annotations and pure Java
如何仅使用 Java 和注释在 Spring 中设置以下内容。
<property name="hibernate.hbm2ddl.auto" value="update"/>
我是这应该是可能的,我相信让项目 xml 免费会更干净。
PS:这应该不重要,但我在 Heroku 上 运行 这个。
我认为没有开箱即用的 Java 注释用于 hbm2ddl。
Hibernate 使用标准 Java 持久性注释 (JPA) 加上一些 Hibernate 扩展注释。
参见:https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/
一般来说,我宁愿建议您将设置外化到 属性 文件中,而不是将其硬编码到 Java class 中。实际上,自动模式生成通常是您只会在 test/staging 期间执行的操作。所以你可能有不同的环境和不同的设置。
将此添加到 dataSource() 所在的 class,它解决了我的问题。
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");
检查这个Whosebug question找出最佳值如果update
不适合你。
如何仅使用 Java 和注释在 Spring 中设置以下内容。
<property name="hibernate.hbm2ddl.auto" value="update"/>
我是这应该是可能的,我相信让项目 xml 免费会更干净。
PS:这应该不重要,但我在 Heroku 上 运行 这个。
我认为没有开箱即用的 Java 注释用于 hbm2ddl。
Hibernate 使用标准 Java 持久性注释 (JPA) 加上一些 Hibernate 扩展注释。
参见:https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/
一般来说,我宁愿建议您将设置外化到 属性 文件中,而不是将其硬编码到 Java class 中。实际上,自动模式生成通常是您只会在 test/staging 期间执行的操作。所以你可能有不同的环境和不同的设置。
将此添加到 dataSource() 所在的 class,它解决了我的问题。
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");
检查这个Whosebug question找出最佳值如果update
不适合你。