我正在使用SQL Server数据库,并且其中一个表具有CLOB
数据。我正在使用Spring Boot + Hibernate框架。当我使用数据库作为SQL Server时,使用存储库获取数据时,我得到了一些编码字符串(其流,我需要将CLOB
转换为String
)。如果我将数据库用作H2内存数据库和MySQL,那么我会得到正确的字符串。因此,我需要使用SQL Server配置一些额外的东西,我不确定将Hibernate CLOB
字段设置为String
时需要进行哪些设置。
@Entity
@Table(name = "pivotwidgets")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Pivotwidgets implements Serializable {
.....
@Lob
@Column(name = "properties", columnDefinition="CLOB")
private String properties;
.....
}
I have below JPA repository :-
public interface PivotwidgetsRepository extends JpaRepository<Pivotwidgets, UUID>, JpaSpecificationExecutor<Pivotwidgets> {
}
@Service
@Transactional
public class PivotwidgetsServiceImpl implements PivotwidgetsService {
@Override
@Transactional(readOnly = true)
public Pivotwidgets findOne(UUID id) {
log.debug("Request to get Pivotwidgets : {}", id);
Optional<Pivotwidgets> pivotwidgets = pivotwidgetsRepository.findById(id);
return pivotwidgets.get();
}
}
当我通过Controller调用上述服务时,我可以像流一样看到CLOB
数据:-
请求网址:
http://localhost:9000/api/pivotwidgets/6f6ff3e9-0db2-4525-9e3a-5713d5a0b198
响应:-
{
"id" : "6f6ff3e9-0db2-4525-9e3a-5713d5a0b198",
"properties" : "獡慤摳"
}
如何处理属性字段转换?
答案 0 :(得分:3)
您可以尝试以下操作
@Lob
@Type(type="text")
@Column(name = "properties", columnDefinition="CLOB")
private String properties;