java - 使用hibernate更改mysql中的表名

标签 java mysql hibernate jpa

我需要使用 JPA 注释 (@Entity) 重命名在 hibernate 中映射的表。 如果我重命名该表,Hibernate 将创建一个新表,因此我在 Flyway ( https://flywaydb.org/ ) 上编写了一个脚本,删除该表并将旧表重命名为新表。

问题是,如果我运行此脚本两次,它将删除重命名的数据库,从而丢失所有数据。我想写这样的东西

DROP TABLE 'NEW_TABLE' IF 'OLD_TABLE' EXISTS;
RENAME TABLE 'OLD_TABLE' TO 'NEW_TABLE';

我不知道如何在 MySql 中执行此操作,可能吗?

最佳答案

如果我正确理解您的问题,则创建一个名为 newName 的新表并执行以下语句。它的作用是滑动表名称并在数据库外部执行此操作,然后将实体的名称更改为 newName。只有在那之后才继续运行您的项目。 这应该适合你:

RENAME TABLE `oldName` TO `newName`

关于java - 使用hibernate更改mysql中的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810546/

相关文章:

java - 在Web应用程序中使用Hibernate和Spring的问题

java - Hibernate @ManyToMany 与复合键的映射

java - 如何在 Eclipse Kepler 工具栏中放置动态下拉列表?

java - 如何检查输入中某种类型的变量

java - Glassfish asadmin 启动域失败

java - 如何使用嵌入式 Tomcat 8 和 Spring 引导将子域转换为路径

mysql - 插入后sql触发错误

php - MySQL 中的阿拉伯字符问题

python - 我应该如何在我的 Mac 上设置我的第一个 MySQL 数据库?

java - 数据库表中的多语言字段