动态更改db列类型

u1ehiz5o  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(223)

给定一个理想情况下不应该停机的java服务,我想在保持服务活动的同时,将表的columntype从varchar改为longtext。
该服务使用spring-->jpa、hibernate和mysql数据库。
实体具有mapped属性,我们称之为foobar,delcareas string。
所以现在看起来是这样的:
java实体: String foobar mysql列: varchar(255) foobar 我想修改一个表,所以它是这样的:
java实体: String foobar mysql列: longtext foobar 问题:
如果我更改mysql列并保持java服务运行,它仍然能够读/写该列,还是会抛出错误?

yjghlzjz

yjghlzjz1#

理论上我会说“是的”,改变应该是透明的。在jdbc中,这两种类型都由相同的 java.sql.Types.VARCHAR 类型。
然而——这是理论——既然你的应用程序看起来很关键,我就不会盲目地相信这个理论。
在dev或测试环境中进行一个简单的测试将给出答案。
只需确保使用完全相同的:
数据库版本,
jpa版本,
休眠版本,
jvm版本,
应用程序版本,
图书馆,
等。

相关问题