我有以下实体:
@Entity
public class Shirt implements Serializable {
@Id
@Size(max=9)
private String id;
@ElementCollection
@CollectionTable(name="SHIRT_COLORS")
@Column(name="color")
private List<String> colors = new ArrayList<String>();
...
将hibernate设置为autocreate时创建的集合表是
SHIRT_COLORS
shirt_id
color
如何注释我的实体,以便连接列不是实体和pk的串联,以便创建的表是:
SHIRT_COLORS
id
color
我试过@JoinColumn但是没有用。实际上,生产中的SHIRT_COLORS表在应用程序之外进行管理,并且已经定义了列名。
答案 0 :(得分:28)
试试这个:
@Entity
public class Shirt implements Serializable {
@Id
@Size(max=9)
private String id;
@ElementCollection
@CollectionTable(
name = "SHIRT_COLORS",
joinColumns=@JoinColumn(name = "id", referencedColumnName = "id")
)
@Column(name="color")
private List<String> colors = new ArrayList<String>();
...