1
假設你有一個表,如下所示:映射按鍵在JPA:主鍵是一個外鍵
CREATE TABLE IF NOT EXISTS CREDENTIAL (
USER_NAME VARCHAR(20) NOT NULL,
HASHED_PASSWORD VARCHAR(128) NOT NULL,
CREATION_DATE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
LAST_UPDATE_DATE TIMESTAMP,
LAST_UPDATED_BY VARCHAR(20),
PRIMARY KEY (USER_NAME),
FOREIGN KEY (USER_NAME) REFERENCES USER(USER_NAME),
FOREIGN KEY (LAST_UPDATED_BY) REFERENCES USER(USER_NAME)
) CHARACTER SET utf8;
人們可以看到,USER_NAME
列是主鍵表,以及一個外鍵。是的,MySQL成功生成了這張表。
問題很簡單,我如何將這個映射到JPA實體?我是否應該有一個映射到USER_NAME
列的ID和另一個加入USER_NAME
列的字段User user
?歡迎提出建議。
爲什麼使用'@ ManyToOne'?一個用戶擁有一個憑證,因此爲什麼'USER_NAME'是主鍵。 –
ManyToOne更容易處理。事實上,你可以與OneToOne一起生活,但我發現OneToOne更難以管理。另外如果應用程序有幾種認證用戶的方式呢? – WeMakeSoftware
它有,但其他認證方案是通過各自的第三方認證完成的,所以不需要將其映射到'@ ManyToOne'方案。 –