gpt4 book ai didi

java - JPA JoinColumn 与mappedBy

转载 作者:行者123 更新时间:2023-11-29 20:52:07 27 4
gpt4 key购买 nike

有什么区别:

@Entity
public class Company {

@OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY)
@JoinColumn(name = "companyIdRef", referencedColumnName = "companyId")
private List<Branch> branches;
...
}

@Entity
public class Company {

@OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY,
mappedBy = "companyIdRef")
private List<Branch> branches;
...
}

最佳答案

注解@JoinColumn表示该实体是关系的所有者(即:对应的表有一列带有被引用表的外键) ,而属性 mappedBy 表示这一方的实体是关系的反面,所有者位于“另一方”实体中。这也意味着您可以从用“mappedBy”(完全双向关系)注释的类访问另一个表。

特别是,对于问题中的代码,正确的注释如下所示:

@Entity
public class Company {
@OneToMany(mappedBy = "company",
orphanRemoval = true,
fetch = FetchType.LAZY,
cascade = CascadeType.ALL)
private List<Branch> branches;
}

@Entity
public class Branch {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "companyId")
private Company company;
}

关于java - JPA JoinColumn 与mappedBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com