0

给定下表:

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的带有字段访问注释的属性可能就足够了。

谢谢

4

1 回答 1

1

PK 在继承树的根中定义。根定义一切。

规范说主键必须定义在作为实体层次结构根的实体类或映射超类上,该超类是实体层次结构中所有实体类的(直接或间接)超类。主键必须在实体层次结构中只定义一次。

于 2010-11-17T07:45:17.660 回答