2013-05-16 58 views
1

嗨,這是我的表結構兩個表角色和組件。使用jpa創建一對多關係(MYSQL)

+----------------+ 
    | role   | 
    +----------------+ 
    | role_id : PK | 
    | role_name | 
    | role_desc | 
    +----------------+ 
      | 
    +----------------+ 
    | component  | 
    +----------------+ 
    | comp_id : PK | 
    | role_id : FK | 
    | parent_comp | 
    | view_per  | 
    | add_per  | 
    | edit_per  | 
    | delete_per | 
    +----------------+ 

這些bean類

package com.example.rolessample; 

    public class component { 
     private String comp_id; 
     private String role_id; 
     private String parent_comp; 
     private char view_per; 
     private char add_per; 
     private char edit_per; 
     private char delete_per; 
    } 
package com.example.rolessample; 

public class role { 

    private String role_id; 
    private String role_name; 
    private String role_desc; 
} 

什麼,我需要添加到我的bean類?

我已經看過在這個例子中,但我不知道如何將它應用到我的例子。

How do you to create a one to many relationship in JPA with no JoinTables?

在此先感謝。

回答

1

如果你不需要在你的實體雙向關係 - 所有你需要的是在「組件」類來改變你的「ROLE_ID」字段是這樣的:

@javax.persistence.ManyToOne 
private role role; 

注意,在這種情況下「角色「將自己的關係和」組成部分「將是反面(非擁有)的」一面「。

如果您還需要雙向關係,則必須將使用@ javax.persistence.OneToMany註釋的字段與指定的「mappedBy」添加到「角色」類。

還檢查了有關其他weaks的文檔上的註釋有更多的控制權。

1

事情是這樣的:

package com.example.rolessample; 
    @Entity 
    public class component { 
     @Id 
     @GeneratedValue(strategy = GenerationType.SEQUENCE) 
     private Integer comp_id; 
     @ManyToOne 
     @JoinColumn(name="role_id") 
     private role role_c 
     private String parent_comp; 
     private char view_per; 
     private char add_per; 
     private char edit_per; 
     private char delete_per; 
    } 

package com.example.rolessample; 
@Entity 
public class role { 
    @Id 
    @GenerValue(strategy = GenerationType.SEQUENCE) 
    private Integer role_id; 
    private String role_name; 
    private String role_desc; 
    @OneToMany (mappedBy = "role_c") 
    private List <component> component_r 
}