这是我的代码:
@Entity
@Table(name="POSTS")
public class Post {
@Id
private Integer id;
@Column(unique=true, nullable=false)
private String slug;
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(
name = "POSTS_TAGS",
joinColumns = {
@JoinColumn(name = "POST_SLUG", referencedColumnName = "SLUG")
}
)
private List<String> tags = new ArrayList<>();
}
Hibernate 生成两个表:POSTS
和 POSTS_TAGS
。
但是,它不会在 POSTS_TAGS
中生成外键。
如果我从 @CollectionTable
注释中删除 joinColumns
属性,它会生成一个带有 id
主键的外键。
如何指示 Hibernate 使用 joinColumns
属性生成外键?
hibernate 4.3.7
最佳答案
不幸的是,您无法指示 Hibernate 生成外来 key ,因为它会尝试自动生成它们。因为它们是在其他上下文中生成的(例如 @ManyToOne
注释或当您省略 @CollectionTable
注释时),所以我很确定这是一个错误。
关于java - 如何强制在 @Entity 和 @ElementCollection 之间生成外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28553648/