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

Spring Boot+Hibernate实体映射报错:Agency实体'id'列重复映射

问题排查与解决方案

问题根源

异常明确指出Agency实体的id列被重复映射,问题出在你嵌入的Country类上——Country类中存在一个同样映射到id列的字段,和Agency自身的主键id产生了冲突。

解决方案

1. 修改嵌入类Country的字段映射

找到Country类的定义,把其中映射到id列的字段修改为其他不冲突的列名,比如country_id:

@Embeddable
public class Country {
    // 替换原@Column(name="id")的写法
    @Column(name="country_id")
    private Long id;
    
    // 其他字段...
}

2. 优化Agency主键注解(可选但建议)

你在Agency的主键id上添加的@Column(insertable=false, updatable=false)对IDENTITY自增策略来说完全多余,Hibernate会自动处理自增主键的插入和更新,建议移除该注解简化代码:

@Entity
@Table(name="tr_agency")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Agency {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    // 移除多余的@Column注解
    private long id;

    // 其他字段...
}

验证

修改后重新启动应用,重复映射的问题即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:06:21