【发布时间】:2010-11-17 06:13:55
【问题描述】:
给定以下表格:
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 注解实现实体和复合主键类?
出现的子问题是:
- 子类是否定义了自己的 ID 类?
- 如果是,它们是否继承自超类的 ID 类?
- 子类是否获得@IdClass 注解?
请注意,这个问题是故意幼稚的。我想看看类声明,没有getter和setter的带有字段访问注释的属性可能就足够了。
谢谢
【问题讨论】:
-
请注意,
(first_name, last_name)对于主键来说是一个错误的想法。见this article。我个人认识至少一个没有名字的人。 -
这只是示例,并不是真正选择的键。我知道其中的含义,但谢谢。
标签: java inheritance jpa annotations composite-primary-key