给定一个Java服务,该服务在理想情况下应该没有停机时间,我想在保持该服务处于活动状态的同时将表的列类型从varchar更改为longtext。
该服务正在使用spring-> jpa,进入休眠状态并与mysql数据库对话。
该实体具有已映射的属性,可以将其称为foobar,代号为String。
所以现在,它看起来像这样:
java实体:String foobar
MySQL列:varchar(255) foobar
我想做一个表修改,所以会像这样:
java实体:String foobar
MySQL列:longtext foobar
问题:
如果我更改mysql列并保持java服务运行,它仍然能够读取/写入该列还是会抛出错误?
答案 0 :(得分:1)
理论上我会说“是”,更改应该是透明的。所有这两种类型在JDBC中都用相同的java.sql.Types.VARCHAR
类型表示。
但是-这是理论-而且由于您的申请似乎非常关键,所以我不会盲目相信该理论。
在DEV或TEST环境中进行简单测试将为您提供答案。
只需确保使用完全相同: