SQL Server CLOB数据转换为String Java + Angular

时间:2019-01-02 04:21:14

标签: java sql-server angular spring spring-boot

我正在使用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" : "獡慤摳"
}

如何处理属性字段转换?

1 个答案:

答案 0 :(得分:3)

您可以尝试以下操作

@Lob
@Type(type="text")
@Column(name = "properties", columnDefinition="CLOB")
private String properties;