hibernate 多对多处理设置
例如角色与权限:
角色中:
private Set privileges= new HashSet();
权限中:
private Set<Role> roles = new HashSet<Role>();
<class name="entity.Role" table="ROLE" dynamic-update="true">
<id name="roleId" type="java.lang.Integer">
<column name="roleID" />
<generator class="identity"></generator>
</id>
<property name="roleName" type="java.lang.String">
<column name="roleName" length="50" />
</property>
<property name="mender" type="java.lang.Integer">
<column name="mender" />
</property>
<property name="modifyTime" type="java.sql.Timestamp">
<column name="modifyTime" length="50" />
</property>
<set name="privileges" cascade="all" table="ROLE_PRIVILEGE" lazy="true">
<key column="roleID" />
<many-to-many class="entity.Privilege" column="pvID" order-by="sequence"/>
</set>
</class>
<class name="entity.Privilege" table="PRIVILEGE">
<id name="pvId" type="java.lang.Integer">
<column name="pvID" />
<generator class="identity"></generator>
</id>
<property name="parentId" type="java.lang.Integer">
<column name="parentID" />
</property>
<property name="pvName" type="java.lang.String">
<column name="pvName" length="50" />
</property>
<property name="level" type="java.lang.Short">
<column name="level" />
</property>
<property name="url" type="java.lang.String">
<column name="url" length="50" />
</property>
<property name="isView" type="java.lang.Short">
<column name="isView" />
</property>
<property name="modifyTime" type="java.sql.Timestamp">
<column name="modifyTime" length="50" />
</property>
<set name="roles" table="ROLE_PRIVILEGE" lazy="true" cascade="none">
<key column="pvID" />
<many-to-many class="entity.Role" column="roleID" />
</set>
</class>
修改角色的时候 1 根据id去查询角色实体
2 将需要更新的字段更新到查询出来的角色实体中
修改角色的权限 1删除当前角色的权限
2 添加当前角色权限
实例:
public void updatePvRole(Integer[] pvIds , Integer roleId ){
if( pvIds==null || pvIds.length==0){
return ;
}
Role role = roleDao.getRole(roleId);
Set setOld = role.getPrivileges();
Iterator it = setOld.iterator();
while(it.hasNext()){
it.next();
it.remove();
}
for( Integer pvId :pvIds ){
Privilege privilege = privilegeDao.getPrivilege( pvId );
setOld.add( privilege );
}
roleDao.updateRole( role );
}
分享到:
相关推荐
Hibernate多对多关联添加及查询示例
Hibernate多对多
NULL 博文链接:https://1028826685.iteye.com/blog/1536060
NULL 博文链接:https://gaoquanyang.iteye.com/blog/1213765
hibernate关联映射注解多对多单向关联、
Hibernate多对多案例笔记Hibernate多对多案例笔记Hibernate多对多案例笔记Hibernate多对多案例笔记
Hibernate多对多关联关系demo
hibernate 多对多 映射 翻转 hibernate多对多关系项目 自己做的hibernate项目 上传上来和大家分享
自已写的学生对课程多对多关系的简单实现,供大家参考.
hibernate多对多的关系实例hibernate多对多的关系实例hibernate多对多的关系实例
Hibernate多对多映射实例,里面包含源程序,测试程序,映射说明
hibernate多对多实例
这个例子会让你很快明白hibernate多对多的原理以及所涉及的程序源码,相信你会有很大的感触!
博文链接:https://llying.iteye.com/blog/220812
Hibernate多对多关系
JavaEE Hibernate多对多简单示例