hibernate多对多的配置
- 作者: 逝去的快乐呢
- 来源: 51数据库
- 2020-10-03
Users 的Pojo:
public Set popedom = new HashSet();
public Set getPopedom() {
return popedom;
}
public void setPopedom(Set popedom) {
this.popedom = popedom;
}
Users 的映射文件:
<set name="Popedom" table="Users_Popedom">
<key column="UsersId"/>
<many-to-many class="com.seipher.pojo.systemSet.Popedom" column="PopedomId"/>
</set>
========================================
Popedom的Pojo:
public Set UsersManage = new HashSet();
public Set getUsersManage() {
return UsersManage;
}
public void setUsersManage(Set usersManage) {
UsersManage = usersManage;
}
Popedom的映射文件:
<set name="UsersManage" table="Users_Popedom">
<key column="PopedomId"/>
<many-to-many class="com.seipher.pojo.systemSet.UsersManage" column="UsersId"/>
</set>
这两不就是hibernate的多对多双向关系?多对多有了,双向监管也有了。
具体代码操作:
/**
* 为用户添加权限,即用户和权限的关系
*
* @param yhxxid
* @param xtqxid
*/
public void setPopedom(String yhxxid, String[] xtqxid) throws HibernateException {
session = HibernateSession.hdSession();
UsersManage usersManage = (UsersManage) this.load(yhxxid);
usersManage.getPopedom().clear();
List result = new ArrayList();
for (int i = 0; i < xtqxid.length; i++) {
result = session.find("from Popedom p where p.idnum=?", xtqxid[i], Hibernate.STRING);
if (result.size() <= 0) {
break;
}
Popedom popedom = (Popedom) result.get(0);
usersManage.getPopedom().add(popedom);//为用户的权限添加权限
}
this.update(usersManage);
}
/**
* 清除用户和权限之间的关系
*
* @param yhxxid
* @param xtqxid
*/
public void removePopedom(String yhxxid, String xtqxid) throws HibernateException, popedomNotExceptionException {
session = HibernateSession.hdSession();
UsersManage usersManage = (UsersManage) this.load(yhxxid);
List result = session.find("from Popedom p where p.idnum=?", xtqxid, Hibernate.STRING);
if (result.size() <= 0) {
throw new popedomNotExceptionException();
}
Popedom popedom = (Popedom) result.get(0);
usersManage.getPopedom().remove(popedom);//为用户移除相应权限
this.update(usersManage);
}
权限操作类似