一方用OneToOne注释,另一方用OneToMany注释注释

时间:2014-02-21 01:04:16

标签: hibernate annotations one-to-many one-to-one

起初我认为这是一个错误,但后来我在网上的其他几个教程中发现了这种非常奇怪的情况。我不明白这是如何工作的。

用户bean:

@Entity  
@Table(name="users")  
public class User {  

@Id  
@GeneratedValue  
private Integer id;  

private String login;  

private String password;  

@OneToOne(cascade=CascadeType.ALL)  
@JoinTable(name="user_roles",  
    joinColumns = {@JoinColumn(name="user_id", referencedColumnName="id")},  
    inverseJoinColumns = {@JoinColumn(name="role_id", referencedColumnName="id")}  
)  
private Role role; 

角色bean:

@Entity  
@Table(name="roles")  
public class Role { 

@Id  
@GeneratedValue  
private Integer id;  

private String role;  

@OneToMany(cascade=CascadeType.ALL)  
@JoinTable(name="user_roles",   
    joinColumns = {@JoinColumn(name="role_id", referencedColumnName="id")},  
    inverseJoinColumns = {@JoinColumn(name="user_id", referencedColumnName="id")}  
)  
private Set<user> userRoles; 

有人可以解释一下这是如何运作的吗?为什么会这样呢?

0 个答案:

没有答案