JoinTable 不是使用@OrderColumn 注释生成的

JoinTable not generated with @OrderColumn annotation

我认为这一定行得通,但似乎行不通。我有一个实体,我们称它为 'team',它有一个顺序很重要的成员列表。

@Table(name = "teams")
public class Team {
    ...

    @OneToMany
    @JoinTable(name = "members_of_team")
    @OrderColumn(name = "index")
    private List<User> members;
}

我对此的期望是,如果我设置

spring.datasource.jpa.hibernate.ddl-auto=create

必须生成table members_of_team。但是除了这个以外的所有table都生成了。没有显示错误,但我也有一个脚本来填充数据库,当尝试在此 table 上插入数据时,显然失败了。

关键是,如果我去掉@OrderColumn注解,table生成正确,数据库脚本加载正确,但可能顺序不保证。

据此 question 看来我没有做任何奇怪的事情。但由于某些原因,似乎不起作用。我有兴趣保留成员列表的顺序。

我使用的版本是 Hibernate 5.4。32.Final、Spring Boot 2.5.5 和 MySQL Connector 5.1.49(带有 MySQL 5.7 服务器) .

如何创建带订单的加入 Table?

好的,我找到问题了。问题是我可能没有在 @OrderColumn(name = "index") 中的列名称上使用最好的名词。使用 index 不是一个好主意,它会导致所描述的问题。如果我将其更改为 column_index 或其他内容,则工作正常并且所有数据均已正确填充。