Hibernate Annotation连接表问题

时间:2009-06-19 19:39:44

标签: hibernate

当使用hibernate注释进行连接表时,如何添加一个不是连接列的额外列,例如,结婚为弱实体?像一个额外的列?

@ManyToMany(targetEntity=some.class,
        cascade ={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.EAGER)
@JoinTable(name = "RELATION", joinColumns ={
        @JoinColumn(name = "HID", unique = true)
    }, inverseJoinColumns = {
        @JoinColumn(name = "FID")
})
Set<PERSON> PEOPLE = new HashSet<PERSON>(); 

1 个答案:

答案 0 :(得分:7)

第三列在技术上使该表成为实体,而不是“可连接”。因此,表格本身就需要是一个实体。从SQL的角度考虑它。连接表只是一个连接表,它不仅仅包含将两个其他表连接在一起所需的信息吗?

同样作为FYI,这个场景在“使用Hibernate的Java持久性(JPA)”的第7章中有所介绍:

  

您可以使用两种常用策略将此类结构映射到Java类。该   第一个策略需要连接表的中间实体类并进行映射   与一对多的关联。第二种策略使用一组组件,具有连接表的值类型类。