Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java POJO中的Spring数据JDBC-Clob列到字符串属性不工作_Java_Spring_Spring Data_Clob_Spring Data Jdbc - Fatal编程技术网

Java POJO中的Spring数据JDBC-Clob列到字符串属性不工作

Java POJO中的Spring数据JDBC-Clob列到字符串属性不工作,java,spring,spring-data,clob,spring-data-jdbc,Java,Spring,Spring Data,Clob,Spring Data Jdbc,我有一个Oracle数据库,它的表有一个CLOB类型的DESCRIPTION列 我的POJO看起来像这样: import java.util.Date; 导入com.fasterxml.jackson.annotation.JsonIgnoreProperties; 导入org.springframework.data.relational.core.mapping.Column; 导入org.springframework.data.relational.core.mapping.Table;

我有一个Oracle数据库,它的表有一个CLOB类型的
DESCRIPTION

我的POJO看起来像这样:

import java.util.Date;
导入com.fasterxml.jackson.annotation.JsonIgnoreProperties;
导入org.springframework.data.relational.core.mapping.Column;
导入org.springframework.data.relational.core.mapping.Table;
导入org.springframework.data.annotation.Id;
导入龙目数据;
@资料
@表(“我的项目”)
@JsonIgnoreProperties(ignoreUnknown=true)
公共类MyItem{
@列(“ID”)@ID Long-ID;
@列(“说明”)字符串说明;
}
我的存储库是这样的

import java.util.List;
导入com.myapp.mymodel.MyItem;
导入org.springframework.data.jdbc.repository.query.query;
导入org.springframework.data.repository.crudepository;
公共接口MyItemsRepository扩展了Crudepository{
//其他方法已删除。。。
@质疑(
“选择m.ID”
+“,m.说明”
+“从我的项目m”
)
列出findMyItems();
}
当我调用repository方法时,我得到一个错误,说没有CLOB到字符串的转换器


非常感谢您的帮助。

这里有一个很好的例子可以解决这个问题:

解决方案相当于添加一个注册转换器的配置,该转换器可以将
CLOB
数据提取到
String
属性

导入java.sql.Clob;
导入java.sql.SQLException;
导入java.util.array;
导入org.springframework.context.annotation.Configuration;
导入org.springframework.core.convert.converter.converter;
导入org.springframework.data.jdbc.core.convert.jdbcustomconversions;
导入org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration;
导入org.springframework.data.jdbc.repository.config.EnableJdbcRepositories;
导入org.springframework.data.relational.core.mapping.Embedded.Nullable;
@配置
@启用jdbc存储库
公共类AggregateJdbcConfiguration扩展了AbstractJdbcConfiguration{
@凌驾
公共JdbcCustomConversions JdbcCustomConversions(){
返回新的JdbcCustomConversions(Arrays.asList(new Converter()){
@可空
@凌驾
公共字符串转换(Clob Clob){
试一试{
返回Math.toIntExact(clob.length())==0//
? "" //
:clob.getSubString(1,Math.toIntExact(clob.length());
}捕获(SQLE异常){
抛出新的IllegalStateException(“未能将CLOB转换为字符串。”,e);
}
}
}));
}
}
下面是一些我最喜欢的关于这个主题的视频

还有几篇博客文章