簡體   English   中英

如何使用具有多列/復合主鍵(JPA 1.0 @IdClass)的表實現繼承?

[英]How do you implement inheritance with tables that have multi-column/composite primary keys (JPA 1.0 @IdClass)?

給出下表:

CREATE TABLE Employees
(
  first_name VARCHAR(50) NOT NULL,
  last_name VARCHAR(50) NOT NULL,
  birth_date DATE NOT NULL,
  PRIMARY KEY (first_name, last_name)
);

CREATE TABLE Managers
(
  first_name VARCHAR(50) NOT NULL,
  last_name VARCHAR(50) NOT NULL,
  salary INTEGER NOT NULL,
  total_bonus INTEGER NULL,
  PRIMARY KEY (first_name, last_name),
  CONSTRAINT managers_employees_fk FOREIGN KEY (first_name, last_name) REFERENCES Employees (first_name, last_name)
);

CREATE TABLE Workers
(
  first_name VARCHAR(50) NOT NULL,
  last_name VARCHAR(50) NOT NULL,
  wage INTEGER NOT NULL,
  PRIMARY KEY (first_name, last_name),
  CONSTRAINT workers_employees_fk FOREIGN KEY (first_name, last_name) REFERENCES Employees (first_name, last_name)
);

您將如何使用JPA 1.0 @IdClass注釋實現實體和復合主鍵類?

出現的子問題是:

  1. 子類是否定義了自己的ID類?
  2. 如果是這樣,它們是否從超類的ID類繼承?
  3. 子類是否獲得@IdClass批注?

請注意,這個問題是天真的。 我希望看到類聲明,帶有不帶getter和setter的字段訪問注釋的屬性可能就足夠了。

謝謝

PK在繼承樹的根中定義。 根定義所有。

規范說,必須在作為實體層次結構根的實體類上或在作為實體層次結構中所有實體類的(直接或間接)超類的映射超類上定義主鍵。 在實體層次結構中,主鍵必須定義一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM