我使用JPA创建了两个表。我需要在这些表之间给出1-1关系。任何人都可以告诉我如何在这些表之间建立关系。
答案 0 :(得分:2)
只需在表中“添加”与FK约束的关系中添加一列。例如:
CREATE TABLE MYENTITYA ( ID BIGINT NOT NULL, MYENTITYB_ID BIGINT ); CREATE TABLE MYENTITYB ( ID BIGINT NOT NULL ); ALTER TABLE MYENTITYA ADD CONSTRAINT SQL100326144838300 PRIMARY KEY (ID); ALTER TABLE MYENTITYB ADD CONSTRAINT SQL100326144838430 PRIMARY KEY (ID); ALTER TABLE MYENTITYA ADD CONSTRAINT FKB65AC952578E2EA3 FOREIGN KEY (MYENTITYB_ID) REFERENCES MYENTITYB (ID);
这将按如下方式映射:
@Entity
public class MyEntityA implements Serializable {
private Long id;
private MyEntityB myEntityB;
@Id
@GeneratedValue
public Long getId() {
return this.id;
}
@OneToOne(optional = true, cascade = CascadeType.ALL)
public MyEntityB getEntityB() {
return this.myEntityB;
}
//...
}
@Entity
public class MyEntityB implements Serializable {
private Long id;
@Id
@GeneratedValue
public Long getId() {
return id;
}
//...
}
如果EntityA
和EntityB
之间的关系不是可选的,则添加NOT NULL
约束。