用户实体
public class SysUser(){
@ManyToMany(cascade = {CascadeType.PERSIST,CascadeType.REFRESH,CascadeType.MERGE}, fetch = FetchType.EAGER)
@JoinTable(name = "sys_user_role", joinColumns = @JoinColumn(name = "n_userId"), inverseJoinColumns = @JoinColumn(name = "n_roleId"))
public List<SysRole> getRoles() {
return roles;
}
}
角色实体中没有配置多对多关系。
下面是插入数据操作
SysRole role = //从数据库中查询出角色对象
user.getRoles().add(role);//设置角色集合属性
session.save(user);
执行save方法后数据直插入到user表中,中间表中没有数据
2 个解决方案
#1
#2
你可以将JoinTable中的joinColumns和inverseJoinColumns两个属性去掉试一下,JPA会自动去关联。
#1
#2
你可以将JoinTable中的joinColumns和inverseJoinColumns两个属性去掉试一下,JPA会自动去关联。