【发布时间】:2014-08-26 20:58:16
【问题描述】:
我有两个实体:Apikey 和 Api。这些是使用连接表连接的:
CREATE TABLE ACTIVE_APIS(
API_ID INTEGER NOT NULL,
API_KEY_ID INTEGER NOT NULL,
CONSTRAINT PK_API_ID_API_KEY_ID PRIMARY KEY (API_ID, API_KEY_ID),
CONSTRAINT FK_API_ID FOREIGN KEY (API_ID) REFERENCES APIS (API_ID),
CONSTRAINT FK_API_KEY_ID FOREIGN KEY (API_KEY_ID) REFERENCES API_KEYS (API_KEY_ID)
);
这之间的行为区别是什么(在 Apikey.class 中):
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name="ACTIVE_APIS",
joinColumns={
@JoinColumn(name="API_KEY_ID", referencedColumnName="API_KEY_ID")
},
inverseJoinColumns={
@JoinColumn(name="API_ID", referencedColumnName="API_ID")
}
)
private List<Api> activeapis;
还有这个(在 Api.class 中):
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name="ACTIVE_APIS",
joinColumns={
@JoinColumn(name="API_ID", referencedColumnName="API_ID")
},
inverseJoinColumns={
@JoinColumn(name="API_KEY_ID", referencedColumnName="API_KEY_ID")
}
)
private List<Apikey> apikeys
我怀疑这与删除有关,但文档什么也没说:http://docs.oracle.com/javaee/7/api/javax/persistence/JoinTable.html#joinColumns()。
【问题讨论】:
标签: jakarta-ee many-to-many jointable jpa-2.1