小弟新手第一次用Hibernate的Annotation,有很多地方不太明白
实体类都是用Annotation配置的,请问各位前辈,为什么用Hibernate生成表时会多生成一张表(d_role_d_user_role),以下是主要代码//-------------User-----------
@SuppressWarnings("serial")
@Entity
@Table(name="d_user")
public class User{
//.....
@OneToMany(targetEntity=UserRole.class)
private Set<UserRole> userRole;
//.....
} //--------------Role----------
@SuppressWarnings("serial")
@Entity
@Table(name="d_role")
public class Role{
//.....
@OneToMany(targetEntity=UserRole.class)
private Set<UserRole> userRole;
//.....
}//-------------UserRole-----------
@SuppressWarnings("serial")
@Entity
@Table(name="d_user_role")
public class UserRole{
//.....
@ManyToOne(targetEntity=User.class)
@JoinColumn(name="user_id")
private User user;
@ManyToOne(targetEntity=Role.class)
@JoinColumn(name="role_id")
private Role role;
//.....
}
实体类都是用Annotation配置的,请问各位前辈,为什么用Hibernate生成表时会多生成一张表(d_role_d_user_role),以下是主要代码//-------------User-----------
@SuppressWarnings("serial")
@Entity
@Table(name="d_user")
public class User{
//.....
@OneToMany(targetEntity=UserRole.class)
private Set<UserRole> userRole;
//.....
} //--------------Role----------
@SuppressWarnings("serial")
@Entity
@Table(name="d_role")
public class Role{
//.....
@OneToMany(targetEntity=UserRole.class)
private Set<UserRole> userRole;
//.....
}//-------------UserRole-----------
@SuppressWarnings("serial")
@Entity
@Table(name="d_user_role")
public class UserRole{
//.....
@ManyToOne(targetEntity=User.class)
@JoinColumn(name="user_id")
private User user;
@ManyToOne(targetEntity=Role.class)
@JoinColumn(name="role_id")
private Role role;
//.....
}
@JoinColumn(name="user_id")
private User user;
@ManyToOne(targetEntity=Role.class)
@JoinColumn(name="role_id")
private Role role;
这块
我说的优点笼统,你去看下Hibernate的Reference吧,有中文的,上面写的很详细
也可以@ManyToMany