用户登录
用户注册

分享至

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);

    }


权限操作类似


软件
前端设计
程序设计
Java相关