【发布时间】:2018-02-04 04:29:10
【问题描述】:
我已准备好将我的应用程序部署到生产环境,并找到persistence.xml 以将其从创建更改为更新,以便数据被持久化....等等,没有persistence.xml
如何进行更改?
【问题讨论】:
标签: hibernate spring-roo
我已准备好将我的应用程序部署到生产环境,并找到persistence.xml 以将其从创建更改为更新,以便数据被持久化....等等,没有persistence.xml
如何进行更改?
【问题讨论】:
标签: hibernate spring-roo
Spring Roo 2.0 生成 Spring Boot 应用程序,因此您需要使用 application.properties 文件配置持久性属性。在 Spring Boot 应用程序中,不需要persistence.xml 文件。
默认情况下,Spring Roo shell 生成的属性将持久性配置为持久化数据,而不是在每次部署应用程序时都创建它。
这是一个关于使用 Spring Roo 命令配置持久性的示例:
jpa setup --provider HIBERNATE --database POSTGRES --databaseName myDB --userName admin --password admin --hostName localhost
src/main/resources/application.properties
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.password=admin
spring.datasource.url=jdbc\:postgresql\://localhost\:5432/myDB
spring.datasource.username=admin
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
如果您已经使用与上面提供的类似命令在项目中配置了持久性,那么您的application.properties 文件中应该有一个非常相似的持久性配置。但是,您说您的数据没有持久化,因此您可能会遇到以下问题:
jpa 命令。script clinic.roo,之后您更新了代码以生成您自己的应用程序。示例clinic.roo 文件配置了一个HYPERSONIC_IN_MEMORY 数据库,因此您将遇到与第1 点所述相同的问题。 解决方案:再次执行jpa 命令以配置持久性非易失性数据库。application.properties 文件中手动配置了spring.jpa.hibernate.ddl-auto 属性,其值为create 或create-drop。 解决方案:将此属性的值更改为validate 或update 值。无论如何,我建议您,如果您将使用 Spring Boot 应用程序,请使用 Spring Boot 官方文档阅读更多关于它们的信息:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
另外,最好检查一下您可以在 application.properties 文件中配置的所有可用属性:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties
希望对你有帮助,
【讨论】:
好的,所以我询问了时间并获得了学习如何制作手表的规范,
答案很简单……
spring.jpa.hibernate.ddl-auto=更新
将此添加到 application.properties。
JCG确实提供了一个提示……虽然他说我改变了设置,但它并没有改变,并且默认是“创建”而不是更新。
最有用的是他的链接
application.properties documentation
谢谢。
【讨论】: