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
或其他内容,则工作正常并且所有数据均已正确填充。
我认为这一定行得通,但似乎行不通。我有一个实体,我们称它为 '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
或其他内容,则工作正常并且所有数据均已正确填充。