java - 如何从hibernate auto转移到生产

标签 java mysql spring hibernate spring-data-jpa

我正在使用 MySQL 构建一个 Spring Boot Web 应用程序,直到现在我都使用

spring.jpa.hibernate.ddl-auto=create-drop

在我的属性文件中,现在我想转到生产环境,我不能再使用这条线了,因为众所周知,它会将数据保存在内存中,最糟糕的是它会破坏所有数据并每隔一段时间创建一个新表部署。

出于开发目的,它很棒,但我接下来需要做的是因为我希望它的行为与我在 ddl-auto 上的行为完全相同,但要持续保存数据,最重要的是永远不要丢弃数据。

附言hibernate.ddl-auto 与 JPA 存储库无关? 因为我经常使用 Crud Repository,我需要它来继续使用 Crud Repository,对吗?

最佳答案

在我看来,最好的做法是:

  • 使用选项 spring.jpa.hibernate.ddl-auto=create-drop 创建 开发环境中的数据库架构和默认数据(如果有)
  • 在普通 DDL 中导出创建的数据库模式
  • 将 DDL 提供给 DBA,以检查是否必须进行任何改进(例如 添加一些索引,复习一些 FK 等。)
  • 在 DBA 审查后调整 JPA 模型
  • 将最终的 DDL 提供给“生产 DBA”以创建 生产环境中的最终正确架构也是

关于您的问题:

the hibernate.ddl-auto has nothig to do with the JPA Repository? cause i use Crud Repository alot and i need this to continue working with Crud Repository, will it?

您当然可以使用 crud 存储库;此选项不会影响您的业务逻辑

希望有用

安杰洛

关于java - 如何从hibernate auto转移到生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43673783/

相关文章:

java - 导入javax.*无法解析

java - 派生时区名称、缩写偏移量

mysql - 计算特定时间段的净推荐值

mysql - 使用 "like"语句编写查询

java - WebSecurity 忽略不适用于 AbstractAuthenticationProcessingFilter

java - 在Spring Boot java中从数据库生成xml

java - 冒泡排序存储在 JSONArray 中的 Java 字符串

mysql - 我有两个表,其中包含与 UserID 相同的列。如何通过子查询获取所有行

java - Spring Boot 配置文件不选择属性文件

java - 将 XML 字符串转换为 JSON 对象