ssh,属性设置了,但是最后结果没有update到数据库里代码:(代码因为比较长,所以给出部分)Role.java

//hibernate 关联Privileage
@ManyToMany(mappedBy = "roles",fetch=FetchType.EAGER)
public Set<Privilege> getPrivileges() {
return privileges;
}
Privileage.java
//hibernate 关联Role
@ManyToMany
public Set<Role> getRoles() {
return roles;
}RoleAction.java
/**
 * 设置权限
 * 
 * @return
 */
public String setPrivilege() {
        //得到role
Role role = roleService.getById(model.getId());
         //得到privileges 
List<Privilege> privileges = privilegeService.getByIds(privilegeIds);
        //设置privileges 
role.setPrivileges(new HashSet<Privilege>(privileges));
roleService.update(role);
return "toList";
}
但是最后的sql语句却没有出现privileges 属性的更新
Hibernate: 
    update
        Role 
    set
        description=?,
        name=? 
    where
        id=?谢谢

解决方案 »

  1.   

    多对多需要建立联合主键的对象而且你的代码里面Many2Many在数据库里面没有第三张的映射表么?
      

  2.   


    他是默认生成映射表,数据库里面有privilege_role的表,是用来关联主键的
      

  3.   

    http://pan.baidu.com/share/link?shareid=2929403883&uk=1963883989这是我的源程序,具体可以参考一下