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

Spring Boot中包含枚举属性的Model对象无法保存的问题求助

Spring Boot中包含枚举属性的Model对象无法保存的问题求助

各位大佬好,我最近在项目里遇到个头疼的问题,折腾好半天都没搞定,特意过来请教下大家!

先跟大家说下我的技术栈环境:

  • Spring Boot 3.4.3
  • Spring Data JPA(底层用的Hibernate 6+)
  • Spring Security 6+
  • 数据库是PostgreSQL

我的实体类TestModel代码大概是这样的(刚才粘贴的时候没写完,我补全了关键部分):

@Getter
@Setter
@Entity
@Table(name="test_model")
public class TestModel {
    @Id
    @GeneratedValue(generator = "UUID")
    @UuidGenerator
    @Column(name = "id", updatable = false, nullable = false)
    private UUID id;

    // 就是这个枚举属性出的问题
    @Column(name = "status")
    private TestStatus status;

    // 还有一些其他普通属性,比如名称、创建时间之类的
}

// 对应的枚举类
public enum TestStatus {
    ACTIVE, INACTIVE
}

具体问题是:当我用Spring Data JPA的save()方法尝试保存TestModel对象时,每次都失败。报错信息大概是Hibernate没法把枚举类型转换成数据库对应的字段类型,或者执行SQL时触发了类型不匹配的错误。

我已经试了好几种办法,但都没解决:

  • 给枚举属性加了@Enumerated(EnumType.STRING)注解,指定用字符串类型存储
  • 检查过数据库里的status字段,确实是varchar类型,长度也足够
  • 确认了枚举的取值和要保存的对象里的status值完全对应,没有拼写或大小写问题
  • 甚至试过自定义AttributeConverter转换器手动处理枚举和数据库字段的转换,结果还是报错

有没有朋友遇到过类似的问题呀?或者Hibernate 6+有没有什么新特性是我没注意到的?麻烦大家帮我分析下可能的原因,或者给点排查方向,真的非常感谢!

备注:内容来源于stack exchange,提问作者java developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 16:03:04