gpt4 book ai didi

java - 从类创建 HSQL 创建表查询

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:26 24 4
gpt4 key购买 nike

我有一个经常使用的项目,目前正在更新中。有几个地方可以安装这个项目, future 不确定在哪里使用什么版本以及将来可能更新到什么版本。不过,现在它们都是一样的。

我的问题源于这样一个事实,即 hibernate 实体类可能有很多更改,并且必须很容易地更新到较新的版本,没有任何麻烦,并且不会丢失数据库内容。只需替换 WAR 并启动,它就会自行迁移。

据我所知,Hibernate 不会更改表,除非 hibernate.hbm2ddl.auto=create,但实际上会丢弃所有数据?

所以现在当 Spring 上下文完全加载时,它会执行一个 bean,它将通过从 versionX 到 versionY 的所有更改(它以前的版本保存在数据库中)将数据库迁移到当前版本,并手动更改表格。

通过一些硬编码的 ALTER TABLE 来添加一些列并没有太大的麻烦,但是当涉及到添加完整的新表时,不得不编写所有这些感觉很愚蠢......

所以我的问题是:

  • 有什么方法可以将实体类和方言发送到 Hibernate在某处编写代码,然后返回一个用于创建表的有效 SQL 查询?

  • 更好的是,以某种方式创建一个 SQL 字符串来向表中添加一个列,方言安全吗?

我希望这不是一个愚蠢的问题,并且在涉及到 Hibernate 时我没有错过任何明显的东西......

最佳答案

你试过吗

hibernate.hbm2ddl.auto=update

它保留所有包含数据的数据库,并仅附加您在实体中更改的列和表。

关于java - 从类创建 HSQL 创建表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com