どこにでも例が表示されないので、これが可能かどうかわかりません。しかし、基本的に、私はJSR-0038 JPA仕様によるとJPA:マップ<Entity1、Set <Entity2>>が可能ですか?
Map<Skill,Set<Rating>> ratings;
CREATE TABLE Worker (
ID BIGINT PRIMARY KEY,
);
CREATE TABLE Skill (
ID BIGINT PRIMARY KEY,
name VARCHAR(32) NOT NULL,
UNIQUE (name)
);
CREATE TABLE WorkerSkillRating (
ID BIGINT PRIMARY KEY,
WorkerID BIGINT NOT NULL,
SkillID BIGINT NOT NULL,
Rating INT,
FOREIGN KEY (WorkerID) REFERENCES Worker (ID),
FOREIGN KEY (SkillID) REFERENCES Skill (ID),
FOREIGN KEY (Rating) REFERENCES Rating (ID)
);
CREATE TABLE Rating (
ID BIGINT PRIMARY KEY,
score TINYINT NOT NULL,
comments VARCHAR(256)
);
エンティティ
@Entity
public class Skill {
@Id
private Long id;
private String name;
public Skill(String name) {
this();
this.name = name;
}
public Skill() {
this.id = Math.abs(new Random().nextLong());
}
}
@Entity
public class Worker {
@Id
private Long id;
// The open question
public Map<Skill, Set<Rating>> ratings;
}
@Entity
public class Rating {
@Id
private Long id;
private Byte score;
private String comments;
}
を使用して、すべての労働者のスキルにアクセスすることができますあなたはそれが可能でない理由を説明して理解するだろうか? –
スキルはワーカーごとに1つの唯一の評価にマップされていますか?もしそうなら、あなたはなぜマップが必要でしょうか? – KumarM
@YairZaslavsky私は説明を理解できました –