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

Spring Boot 3.0迁移后Hibernate LAZY加载失效致用户删除失败

Spring Boot 3.0迁移后用户删除功能异常及关联属性加载问题

迁移至Spring Boot 3.0后,集成测试显示用户删除功能无法正常工作。排查发现:加载User对象时,其中一个关联属性无法被加载,只有将该属性设为EAGER抓取才能正常加载;此时删除用户会失败,因为数据库中仍存在引用该用户的关联记录。

两个关联属性的配置方式看似完全一致,但表现截然不同,具体代码如下:

User实体代码

@Entity
@Data
@Table(name = "user_model")
public class User extends BaseEntity {
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String id;
    
    ...

    @OneToOne(fetch = FetchType.LAZY, mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
    private UserSettings userSettings;

    @OneToOne(fetch = FetchType.LAZY, mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
    private UserTermsOfUse userTermsOfUse;
    
    ...
}

可正常加载的UserTermsOfUse实体代码

@Entity
@Table(name = "user_termsofuse")
@Data
public class UserTermsOfUse extends BaseEntity {

    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String id;

    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "user_id", referencedColumnName = "id")
    @ToString.Exclude
    private User user;

    @Column(name = "accepted_termsofuse")
    private String acceptedTermsOfUse;

}

无法加载的UserSettings实体代码

@Entity
@Table(name = "user_settings")
@Data
public class UserSettings extends BaseEntity {

    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String id;

    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "user_id", referencedColumnName = "id")
    @ToString.Exclude
    private User user;

    private String language;

    private String lastActiveClientId;

}

数据库中确实存在对应用户的UserSettings记录,但通过ID加载User实体时,仅能看到UserTermsOfUse属性,UserSettings属性为null,访问该属性时会触发NullPointerException。

内容的提问来源于stack exchange,提问作者kism3t

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:30:42