以前我有一个名为summary的数据库column
名称,其类型为varchar
private String summary;
最近我想将此列数据类型更改为TEXT
以启用存储大数据。为此,我在lob
中使用了hibernate
注释。
@lob
private String summary;
因此我可以将大量数据存储到该摘要字段。但问题是我有一些旧记录,摘要字段包含varchar。获取数据集时会抛出错误An attempt was made to get a data value of type 'java.sql.Clob' from a data value of type 'VARCHAR'
。所以我的问题是,
如果有人知道放弃你的答案,请。
答案 0 :(得分:1)
从字符串迁移到clob的简单方法:
1-添加像这样的中间属性
@lob
private String summaryAux;
并从摘要属性中删除@lob
2-使用java main函数获取所有记录并设置" summary"进入" summaryAux"。
main(){
List<Record> records = getAllRecors();
for(Record record: records){
record.setSummaryAux(record.getSummary());}
saveRecords(records);
}
3 - 删除
@lob private String summaryAux;
从您的代码中再次将@lob放在private String summary;
上,并从中删除摘要列
关联表,最后重命名summaryAux column =&gt;总结