gpt4 book ai didi

hibernate - 注释中mappedBy 属性的含义?

转载 作者:行者123 更新时间:2023-12-04 13:08:46 27 4
gpt4 key购买 nike

我是 hibernate 的新手。我试图在以下代码中创建 Person 和 PersonDetail 实体之间的一对一映射:

@Entity
public class Person {

private int personId;
private String personName;
private PersonDetail personDetail;

@OneToOne(mappedBy="person")
public PersonDetail getPersonDetail() {
return personDetail;
}

public void setPersonDetail(PersonDetail personDetail) {
this.personDetail = personDetail;
}

@Id
@GeneratedValue
public int getPersonId() {
return personId;
}

public void setPersonId(int personId) {
this.personId = personId;
}

public String getPersonName() {
return personName;
}

public void setPersonName(String personName) {
this.personName = personName;
}
}


@Entity
public class PersonDetail {

private int personDetailId;
private String zipCode;
private String job;
private double income;

private Person person;

@OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
public Person getPerson() {
return person;
}

public void setPerson(Person person) {
this.person = person;
}

@Id
@GeneratedValue
public int getPersonDetailId() {
return personDetailId;
}

public void setPersonDetailId(int personDetailId) {
this.personDetailId = personDetailId;
}

public String getZipCode() {
return zipCode;
}

public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}

public String getJob() {
return job;
}

public void setJob(String job) {
this.job = job;
}

public double getIncome() {
return income;
}

public void setIncome(double income) {
this.income = income;
}

}

我希望 PersonDetail 应该是拥有实体(我知道反之亦然是正确的,但我只想测试)。我不明白的是我在 Person 实体中使用了 mappingBy 属性。如果我删除它,我会收到以下错误:
“无法确定类型:com.hibernate.onetoonemapping.PersonDetail,在表:Person,列:[org.hibernate.mapping.Column(personDetail)]”

这个mappedBy 属性有什么作用?我读过 mappingBy 属性放在非拥有方。但它究竟有什么作用呢?

最佳答案

这意味着实体之间的关系已经被映射,所以你不要这样做两次。您只需使用mappedBy 属性说“嘿,它在那边完成了”。

关于hibernate - 注释中mappedBy 属性的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962878/

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