JPA - 外键的ElementCollection

时间:2018-04-12 15:07:00

标签: java jpa

我尝试在实体A中映射Set<String>,每个字符串引用实体B的主键。

我坚持:必须是对密钥的引用。不是整个实体 ......我已经知道如何制作@ManyToOne,@ OneToMany等等......;)

例如:

@Entity
public class A {

    (...)

    @Id
    @GeneratedValue
    private long id;

    // Here is the problem: I want the siren as a foreign key of entity B
    @ElementCollection
    private Set<String> b_ids;

    (...)

}

@Entity
public class B {

    (...)

    @Id
    private String id;

    (...)

}

修改 我试着重新提出一个问题:是否有办法存储一个实体的唯一ID,但是链接(以及对ManyToMany的检查和控制等等)到外键?

1 个答案:

答案 0 :(得分:0)

它应该与一些额外的注释一起使用。资料来源:https://javabydeveloper.com/mapping-collection-of-basic-value-types-jpa-with-hibernate/

@Entity
public class A {

    (...)

    @Id
    @GeneratedValue
    private long id;

    @ElementCollection
    @CollectionTable(name="B", joinColumns=@JoinColumn(name="id"))
    @Column(name="id")
    private Set<String> b_ids;

    (...)

}

因此添加了CollectionTable和Column注释。