@ManyToMany连接的Hibernate实体建模

时间:2012-12-07 22:58:19

标签: java hibernate

enter image description here

我有2个表,View(viewId INTEGER)和Auth(登录VARCHAR)。我想使用hibernate 4和注释创建另一个加入View和Aut的表。 注意我在该表中添加了另一个字段visibile。

@Entity
public class ViewAut {          

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="VIEW_VIEWID")
    private Rview view;             

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="AUT_USERID")  
    private Aut aut;                

    @Column                         
    private boolean visibile;       
    // Getter & setters
}

View对象有一组ViewAut对象

@Entity                                          
public class View {
    // DONT KNOW HOW TO WRITE ANNOTATION FOR THIS SCENARIO
    private Set<ViewAut> authorizations;

相似,Auth对象有一组ViewAut对象

@Entity                                          
public class Aut {
    // DONT KNOW HOW TO WRITE ANNOTATION FOR THIS SCENARIO
    private Set<ViewAut> authorizations;

请指导我如何在hibernate 4注释中编写这些连接?

1 个答案:

答案 0 :(得分:0)

使用Embeddable无法完成您要完成的任务。 JPA将Embeddable定义为一个类,其实例存储为拥有实体的内在部分并共享实体的标识。嵌入对象的每个持久属性或字段都映射到实体的数据库表,请参阅Embeddable

在这种情况下,您应该将此ViewAut建模为另一个Entity,并使用OneToMany建立它们之间的关系。