我想使用 Hibernate 和 JPA 实现一对一的关系。我有两个属于层次结构的类:问题层次结构和答案层次结构。
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class QuestionUnit {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private AnswerUnit correctAnswer;
...}
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class AnswerUnit {
@Id
private int id;
public abstract Object getAnswerContent();
public abstract boolean isEqual(AnswerUnit otherAnswer);
public int getId() {
return id;
}
}
我们有 OpenQuestion 和 OpenAnswer 作为实现。
我想要这样带有 OpenQuetions 的表将具有自动生成的主键,而带有 OpenAnswer 的表将具有与 OpenQuestion 表中的主键具有相同值的主键。
我尝试从这里遵循示例:http: //docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html part 2.2.5.1。一对一。
但是当我坚持 OpenQuestion 时,我得到了带有 columns 的表 OpenQuestion和带有id
,的questionContent
OpenQuestionAnswer id
,answerContent
但是 id 的值不匹配。
那么,我在哪里犯了错误?