Tôi là người mới ngủ đông. Tôi đã cố gắng để tạo ra một ánh xạ một-một giữa Người và PersonDetail thực thể trong đoạn mã sau:Ý nghĩa thuộc tính mappedBy trong chú thích?
@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;
}
}
Tôi muốn điều đó PersonDetail nên là đối tượng sở hữu (Tôi biết rằng ngược lại là đúng, nhưng tôi chỉ muốn kiểm tra). Những gì tôi không hiểu là việc sử dụng thuộc tính mappedBy mà tôi đã đưa vào thực thể Person. Nếu tôi xóa nó, tôi nhận được lỗi sau: "Không thể xác định loại cho: com.hibernate.onetoonemapping.PersonDetail, tại bảng: Người, cho cột: [org.hibernate.mapping.Column (personDetail)]"
Thuộc tính mappedBy này làm gì? Tôi đã đọc thuộc tính mappedBy được đặt ở bên không sở hữu. Nhưng chính xác thì nó làm gì?