java - hibernate "auto schema update"是否会丢弃它不拥有的任何内容?

标签 java mysql hibernate spring-data-jpa database-schema

我有多个项目,每个项目都有自己的实体、索引等(使用 spring-data 但底层 JPA 提供程序是 Hibernate 5.0.12)。假设项目 A 具有实体/表 T 和 U,项目 B 具有实体/表 V 和 W,并且两个项目都连接到同一个 MySQL 数据库。如果我在每个项目上设置 hibernate.ddl-auto: update ,这些项目是否会互相干扰?项目 A 是否会看到表 V 和 W 并认为“嘿,这些表不在我的架构中,我将摆脱它们”?

当连接多个 hibernate 模式并自动更新到同一个 MySQL 数据库时,我还应该注意其他问题吗?最终,当我们进行生产部署时,我们将创建一个大的统一“模型”项目,并且所有项目都将其作为依赖项,但是当我们进行原型(prototype)设计时,只需将必要的实体放入相关项目中会更快 - 但不是如果它会引起问题!

最佳答案

我强烈建议您在这里阅读更多相关内容: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

但是回答你的问题:不,它不会掉落任何东西。

更新过程将搜索它可以创建的所有列,然后创建这些列。甚至无法更改数据库类型(例如从 int 到 string)。

在这种情况下,强烈建议使用 Flyway 或 Liquibase 等工具。 https://flywaydb.org https://www.liquibase.org

关于java - hibernate "auto schema update"是否会丢弃它不拥有的任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50816146/

相关文章:

java - 需要帮助使用广度优先搜索 (Java) 进入邻接矩阵(图形)的第 n 级

php - 从具有多列的 mysql 中选择不同的值

mysql - 如何将HTML字符编码数据正确加载到My Sql数据库中?

java - hibernate的hibernate.cache.use_structed_entries能做什么?

hibernate - 什么时候保存实例?

Java如何提示用户保存word文档

java - 如何使用正则表达式通过类名构建 HTML DOM 元素的选择器

java - NMEA校验和计算

php - 可以用MySQL数据库代替变量吗?

java - 当分离的实体版本属性为空时,为什么 Hibernate 实体管理器执行插入而不是更新?