如题,我现有两个实体,用户和角色。多对多关系。只有单方向根据用户查询角色需求,当我插入用户的时候,中间表中数据没有插入,很是郁闷,贴出代码
用户实体
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表中,中间表中没有数据
用户实体
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表中,中间表中没有数据
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货