这是我的代码:
@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
中生成外键。
如果我从joinColumns
注释中删除@CollectionTable
属性,它会生成一个带有id
主键的外键。
如何指示Hibernate使用joinColumns
属性生成外键?
Hibernate 4.3.7
答案 0 :(得分:1)
不幸的是,你不能指示Hibernate生成一个foregin键,因为它会自动尝试生成它们。因为它们是在其他上下文中生成的(例如@ManyToOne
注释或者当您省略@CollectionTable
注释)时,我很确定它是一个错误。