gpt4 book ai didi

java - 如何将 varchar 转换为 java.sql.Clob

转载 作者:行者123 更新时间:2023-12-01 09:34:11 26 4
gpt4 key购买 nike

之前我有一个数据库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' .所以我的问题是,

  1. 我需要删除旧记录来解决类型不匹配的问题吗?
  2. 是否可以使用新数据类型保留旧记录?如果可以,我该如何实现?
  3. 在 hibernate 模式下存储大文本的最佳方式是什么?

请如果有人知道请留下您的答案。

最佳答案

从字符串迁移到 clob 的最简单方法:

1-添加一个像这样的中间属性

@lob
私有(private)字符串summaryAux;

并从摘要属性中删除@lob

2-使用java主函数获取所有记录并将“summary”设置到“summaryAux”中。

main(){
List<Record> records = getAllRecors();
for(Record record: records){
record.setSummaryAux(record.getSummary());}
saveRecords(records);
}

3-删除

@lob 私有(private)字符串summaryAux;

从您的代码中再次将 @lob 放在 private String Summary; 上,并从关联表并最终重命名summaryAux列=>摘要

关于java - 如何将 varchar 转换为 java.sql.Clob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39144723/

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