1
所以,我不知道如何提出這個問題,因爲它似乎應該很容易找到這個問題的答案。使用一個實體(及其主鍵)作爲另一個實體的ID
我有3張桌子; ContentHeader,ContentType1和ContentType2。 ContentHeader有一個主鍵,自動遞增鍵。 ContentType1和ContentType2都將外鍵保存到ContentHeader的主鍵。這些外鍵也是它們各自表的主鍵。
CREATE TABLE contentHeader (contentID INT AUTO_INCREMENT PRIMARY KEY, ...) ENGINE=InnoDB;
CREATE TABLE contentType1 (contentID INT PRIMARY KEY, FOREIGN KEY (contentID) REFERENCES contentHeader (contentID), ...) ENGINE=InnoDB;
CREATE TABLE contentType2 (contentID INT PRIMARY KEY, FOREIGN KEY (contentID) REFERENCES contentHeader (contentID), ...) ENGINE=InnoDB;
我已經創建了四個類:
@Entity
public class ContentHeader {
@Id
@GeneratedValue
protected int contentID;
...
}
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class Content {
@Id
@OneToOne
protected ContentHeader contentHeader;
...
}
@Entity
public class ContentType1 extends Content {
...
}
@Entity
public class ContentType2 extends Content {
...
}
試圖生成模式時,這會拋出一個空指針。我很確定我只是缺少一些簡單的東西。我注意到了PrimaryKeyJoinColumn,但我不確定這是否是我需要的。