You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot+MySQL遇SQL Error 1406:description字段数据过长报错

解决MySQL字段数据过长导致的保存失败问题

这个错误的核心原因是你的description字段在数据库中默认映射为VARCHAR(255),而你要保存的字符串长度(2269字符)远超这个限制,触发了MySQL的数据截断校验。以下是具体解决步骤:

1. 修改实体类字段映射

在TropicalEs类的description字段上添加@Column注解,明确指定字段类型为TEXT(可容纳65535字符,完全覆盖你的需求):

@Entity
@Table(name = "t_tropical_es",
        uniqueConstraints =
        @UniqueConstraint(columnNames = {
                "name",
                "lang"}))
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString
public class TropicalEs {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String lang;
    @Column(columnDefinition = "TEXT")
    private String description;
    private Date updateDate;
}

如果未来可能需要存储更长的文本(超过65535字符),可以改用LONGTEXT类型:

@Column(columnDefinition = "LONGTEXT")
private String description;

2. 更新数据库表结构

  • 开发环境中,若开启了JPA自动建表(配置spring.jpa.hibernate.ddl-auto=update),重启应用后Hibernate会自动将字段类型更新为TEXT。注意:生产环境禁止依赖自动建表,可能引发数据风险。
  • 生产环境建议手动执行SQL语句修改表结构:
ALTER TABLE t_tropical_es MODIFY COLUMN description TEXT;

3. 验证修复

重新启动应用,尝试保存包含长字符串的TropicalEs对象,确认数据截断错误不再出现。

内容的提问来源于stack exchange,提问作者Nunyet Calçada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:25:11