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

无法创建OneToOne关联:Unknown mappedBy错误求助

OneToOne关联报错排查与修复

错误原因

报错核心是mappedBy属性值配置错误:

  • PersonalData类中@OneToOne(mappedBy = "personal_data")里的personal_data是数据库列名,但mappedBy要求指定的是关联实体(User)中的Java属性名。
  • User类中对应的关联属性是personalData(驼峰命名),而非下划线格式,导致Hibernate无法找到对应属性,抛出Unknown mappedBy异常。

修复代码

修改PersonalData类中的@OneToOne注解的mappedBy值,改为User类中的属性名personalData:

@Entity
@Table(name = "personal_data")
public class PersonalData {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    // 修正mappedBy的值为User类中的属性名
    @OneToOne(mappedBy = "personalData")
    private User user;

    // getters, setters
}

User类代码无需修改,其@JoinColumn(name = "personal_data_id")配置正确,指定了user表中外键列的名称。

额外验证

  • Gradle依赖配置:Spring Boot 2.7.3与MySQL 8.0.30版本兼容,JPA、Web等依赖配置正常。
  • application.properties:数据库连接、Hibernate自动建表(ddl-auto=update)等配置无问题,可正常生成关联表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 07:03:30