假设我有一个人
class Person{
@Id Integer id;
@OneToOne
@JoinColumn(name = "person_id")
Job myJob;
}
和工作
class Job{
@Id Integer id;
Integer person_id;
@OneToOne
@PrimaryKeyJoinColumn(name = "person_id")
Person currentWorker;
}
获取时,我无法将人员和工作映射到其他实体。
我犯了什么错误?
最佳答案
您的代码应该是:
@Entity
public class Person implements Serializable {
@Id Integer id;
@OneToOne
@JoinColumn(name = "id")
Job myJob;
}
@Entity
public class Job implements Serializable {
@Id Integer id;
@OneToOne(mappedBy = "myJob")
Person currentWorker;
}
(尝试从作业中删除重复的列“person_id”)
或其他共享主键的方法:
@Entity
public class Person {
@Id Integer id;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
Job myJob;
}
@Entity
public class Job {
@Id Integer id;
}
关于hibernate - @OneToOne 与 @JoinColumn 双向映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10687529/