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

Quarkus Hibernate ORM在两个含@OneToMany关联的实体继承同一父类时生成有缺陷的关联表

Quarkus Hibernate ORM在两个含@OneToMany关联的实体继承同一父类时生成有缺陷的关联表

最近在Quarkus项目里用Hibernate ORM踩了个坑:当两个继承自同一父实体的子类都配置了@OneToMany关联时,Hibernate自动生成的关联表存在缺陷,直接导致数据关联逻辑混乱。先给大家贴一下我的实体类结构:

父实体代码:

@Entity
public class ParentContainer {
    @Id
    @GeneratedValue
    public Long id;
}

第一个子类Container1,带有@OneToMany关联:

@Entity
public class Container1 extends ParentContainer{
    @OneToMany
    public Set<Part> parts;
}

第二个子类Container2(代码有截断,但核心是同样要配置@OneToMany关联):

@Entity
public class Container2 extends ParentContainer {
    @One

我试过切换不同的继承策略,不管是默认的单表继承还是Joined继承,Hibernate生成的关联表都有问题。比如它根本没为不同子类的关联生成独立的外键约束,反而把两个子类的@OneToMany关联当成同一份来处理——查询Container1的parts时,会意外混进Container2关联的Part数据,反过来查Container2的关联数据也是一样乱。生成的关联表结构完全不符合预期,根本没区分开两个子类的关联关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 16:09:33