日期:2014-05-17  浏览次数:20703 次

Hibernate 注解 多对多 双向
//用户类

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(
name="xz_forfriend" ,
joinColumns={@JoinColumn(name="uid")} ,
inverseJoinColumns={@JoinColumn(name="fid")}
)
public Set<User> getForfriends() {
return forfriends;
}
public void setForfriends(Set<User> forfriends) {
this.forfriends = forfriends;
}


//   保存···
User uuser = userDao.getUser(uid);
User fuser = userDao.getUser(fid);


uuser.getForfriends().add(fuser);
fuser.getForfriends().add(uuser);

userDao.save(fuser);
userDao.save(uuser);

数据库 添加不进去···



------解决方案--------------------
cascade = CascadeType.ALL
已经配置级联关系,就不需要双向添加了

User uuser = userDao.getUser(uid);
User fuser = userDao.getUser(fid);
//单向添加即可
uuser.getForfriends().add(fuser);
userDao.save(fuser);

如果保存依然有问题,请检查中间表是否正确建立了