Java Spring试图将字符串保存到DB中

Java Spring试图将字符串保存到DB中,java,spring,hibernate,Java,Spring,Hibernate,这是我用来将数据保存到DB中的代码: for (int i = 0; i < callSubSetJson.size(); i++) { CallDto c = new CallDto(); c.setCallsJ(callSubSetJson.get(i).replace("\"", "")); _callRepository.save(c); } 对于映射,我使用以下类: @Entity public class Cal

这是我用来将数据保存到DB中的代码:

    for (int i = 0; i < callSubSetJson.size(); i++) {
        CallDto c = new CallDto();
        c.setCallsJ(callSubSetJson.get(i).replace("\"", ""));
        _callRepository.save(c);
    }
对于映射,我使用以下类:

@Entity
public class CallDto {

@Id
@GeneratedValue
private Long id;

@Lob    
private String callsJ;
基于错误“字符串数据,右截断” 我猜您要插入的字符串的长度超过了以DB为单位的长度限制。
检查模式的定义,您在此列上定义了多少长度?您要插入的长度是多少?

我假设您没有向列中添加长度,并且长度设置为默认值,正好比您要插入的字符串短。试试像

@Column(length = <insert appropriate length here>, name = "callsJ")
private String callsJ; 
@列(长度=,name=“callsJ”)
私有字符串调用;

如果您执行了
setCallsJ(“一些非常长的测试???”)
是否仍然有效?能否共享您的hibernate映射文件和表定义。@Chieftwo Pencils如果我输入长文本,它将失败,我刚刚试过。@MSD我添加了映射类。您能描述一下后端表定义吗?我没有定义任何内容。您正在使用hibernate进行OR映射。所以在hibernate的后面一定有一个数据库。您是如何定义数据库的?@5er我刚刚检查了hibernate文档,注释有一个默认长度(255)。这可能是原因。@5er,文档:(参见2.2.2.3.声明列属性)的@column(columnDefinition=“TEXT”)不够吗?@5er,你试过了吗;如果是这样,会发生什么?我在您提供的代码中没有看到任何注释。是的,这可以解决我的问题,但我认为@Lob可以帮我解决这个问题。非常感谢。我可以再问一个问题吗?我如何将Json保存到这个字符串中?@5er,我建议你再问一个问题,或者搜索答案;我想这很常见。
@Column(length = <insert appropriate length here>, name = "callsJ")
private String callsJ;