我有两个实体,雇主
和语言
,它们之间有多对多的关系。每个雇主
可以有多个语言
enitites,它们有它们可以说的语言的首选顺序。我想将首选顺序存储在连接表中,并通过有序的List检索它
这是我的雇主
和Language
实体的示例:
@Entity
public class Employer {
@Id
private Long id;
//.....
@ManyToMany
private List<Language> languages;
//.....
}
@Entity
public class Language {
@Id
private Long id;
//.....
}
这就是数据库表的样子:
employer table:
| id | bigint |
....
language table:
| id | bigint |
....
employer_language table:
| employer_id | bigint |
| language_id | bigint |
| order_index | int |
JPA允许这样做吗?
我考虑过使用包含Language
作为键和按值排序索引的Map字段,但我认为可能有更好的解决方案。
是的,这是可能的。您必须使用@OrderCol列
注释。在您的示例中,您将有如下内容:
@Entity
public class Language {
@Id
private Long id;
//.....
}
@Entity
public class Employer {
@Id
private Long id;
//.....
@ManyToMany
@OrderColumn(name = "order_index")
private List<Language> languages;
//.....
}