我想在一组列表类型上使用@ElementCollection,如下所示:
@ElementCollection
@CollectionTable(name = "MY_PRODUCT", joinColumns = @JoinColumn(name = "ID_PRODUCT"))
private List<MY_PRODUCT> products = new ArrayList<>();
之后,我看到 Hibernate 生成以下脚本 sql:
CREATE TABLE HIST_MY_PRODUCT (
REV number(10,0) not null,
REVTYPE number(3,0) not null,
ID_PRODUCT number(19,0) not null,
PRICE number(10,0),
primary key (REV, REVTYPE, ID_PRODUCT)
);
如果我使用一组 Set 类型,像这样:
@ElementCollection
@CollectionTable(name = "MY_PRODUCT", joinColumns = @JoinColumn(name = "ID_PRODUCT"))
private Set<MY_PRODUCT> products = new LinkedHashSet<>();
Hibernate 生成以下脚本 sql:
CREATE TABLE HIST_MY_PRODUCT (
REV number(10,0) not null,
REVTYPE number(3,0) not null,
ID_PRODUCT number(19,0) not null,
SETORDINAL number(10,0) not null,
PRICE number(10,0),
primary key (REV, REVTYPE, ID_PRODUCT, SETORDINAL)
);
所以,我只看到 Set 类型的集合而不是 List 类型的附加字段“SETORDINAL”。
你能解释一下这个案子吗?我不会将我的所有列表字段都更改为设置。
提前感谢您的回复。