2012-12-07 34 views
0

enter image description here爲@ManyToMany Hibernate的實體建模加入

我有2個表,視圖(viewId整數)和驗證(登錄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 
} 

查看對象都有一組ViewAut的對象

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

與之相似,驗證對象都有一組ViewAut的對象

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

能否請您指導我如何寫那些加盟在休眠4註釋?

回答

0

你試圖完成的事情不能用Embeddable完成。 JPA將Embeddable定義爲一個類,其實例存儲爲擁有實體的固有部分並共享該實體的身份。持續性或嵌入對象的字段中的每一個映射到該實體的數據庫表,看Embeddable

在這種情況下,你應該這樣ViewAut建模爲另一Entity,並且使用OneToMany建立它們之間的關係。

+0

我已經更改嵌入到實體,現在你將如何關聯這3個類? – Akadisoft

+0

使用'@ OneToMany'關聯的'mappedBy'屬性。選中此鏈接(http://docs.oracle.com/javaee/6/api/javax/persistence/OneToMany.html)。另外一個實體需要一個Id,所以你應該在'ViewAut'中註釋這兩個關聯作爲複合關鍵字的一部分。請查看['IdClass'](http://docs.oracle.com/javaee/6/api/javax/persistence/IdClass.html)以獲取更多信息。 –