我有以下三個實體類。Hibernate:如何設置三個實體類,它們的連接表和保存在數據庫中的關係
@Entity
public class User {
@Id
@Column(nullable = false)
@GeneratedValue(strategy= GenerationType.AUTO)
private Integer id;
}
@Entity
public class LanguageProficiencyLevel {
@Id
@Column(nullable = false)
@GeneratedValue(strategy= GenerationType.AUTO)
private Integer id;
private String name; // A1, A2, B1 ... etc
}
@Entity
public class Language {
@Id
@Column(nullable = false)
@GeneratedValue(strategy= GenerationType.AUTO)
private Integer id;
private String name; //English, Chinese ect ...
}
目前在數據庫中,我有大約20種語言保存在語言表6個語言水平A1,A2,B1,B2,C1,C2保存在LanguageProficiencyLevel表。
現在我有以下關係的實體類。
用戶可以得知一個以上的語言有一個熟練程度,並與一個能力級別的語言是由許多用戶知道。
因此,例如,用戶可以說英語,他的英語水平可能是C1,再次相同的用戶也可以知道西班牙語和他的西班牙熟練程度可能是B1。
在這裏,我明白,用戶和語言有許多關係。但我不明白如何將LanguageProficiencyLevel與用戶或語言聯繫起來。
另外我應該如何將它保存在數據庫中?我的想法是創建一個連接表(LanguageSkill),列名爲user_id,language_id和languageProficiencyLevel_id,並且在創建用戶時將插入此錶行。我不確定這是否實施它的方式。請給我一個想法如何做到這一點,以及這應該是什麼配置。