繁体   English   中英

休眠@OneToMany / @ManyToOne列不出现

[英]Hibernate @OneToMany / @ManyToOne column not appearing

我有一个@OneToMany / @ManyToOne关系,其中一个Project可以具有一个或多个Phases而一个Phase取决于一个Project 很简单

这是我的实体(相关部分):

@Entity
@Table(name = "project")
public class ProjectEntity {

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

    // Our Set of phases to be saved in the database as an array 
    @OneToMany(targetEntity = PhaseEntity.class)
    private Set<PhaseEntity> phases = new HashSet<>(0);

    // Getters and setters
}

和我的PhaseEntity

@Entity
@Table(name = "phase")
public class PhaseEntity {
    @Id
    @Column(unique = true, name="phase_id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    // Our project on which the phases are appart of   
    @NotNull
    @ManyToOne(targetEntity = ProjectEntity.class)
    private ProjectEntity project;

    // Getters and setters
}

在已经存在的项目中创建阶段后,我通过创建一个实体将它们逐个保存,

phaseDao.save(phaseEntity);

最后像这样将阶段集保存在我的项目中:

project.setPhases(phaseSet);

我的阶段已正确创建,并已链接到项目,但是我的项目没有阶段的迹象,因为它们没有“ phases列。

编辑:事实证明,Hibernate创建了一个名为project_phases的链接表,有没有一种方法可以在不创建链接表的情况下保存阶段数组?

我不明白什么?

在@OneToMany注释中使用mappingBy属性

@OneToMany(targetEntity = PhaseEntity.class, mappedby="project")
private Set<PhaseEntity> phases = new HashSet<>(0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM