⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roledaohibernate.java

📁 《JSP网站开发典型模块与实例精讲》一书光盘源码
💻 JAVA
字号:
/*
 * Created on 2006-2-3
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.appfuse.dao.hibernate;

import java.util.List;

import org.springframework.orm.ObjectRetrievalFailureException;

import org.appfuse.dao.RoleDAO;
import org.appfuse.model.Role;
import org.appfuse.util.exception.AppDAOException;
import org.appfuse.model.Staff;
import org.appfuse.model.StaffRole;
import org.appfuse.model.RoleAuth;

/**
 * @author user
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class RoleDAOHibernate
    extends BaseDAOHibernate
    implements RoleDAO {

    public Role getRole(int roleid) throws AppDAOException {
        Role role = (Role) getHibernateTemplate().get(Role.class,
            new Integer(roleid));

        if (role == null) {
            throw new ObjectRetrievalFailureException(Role.class,
                new Integer(roleid));
        }

        return role;
    }

    public List getRoles(Role role) throws AppDAOException {
        return getHibernateTemplate().find("from Role");
    }

    public List getStaffs(int roleid) throws AppDAOException {
        //员工已赋予的角色
        List list = getHibernateTemplate().find(
            "select b from StaffRole a, Staff b where a.staffno = b.staffno and a.roleid = ?",
            new Integer(roleid));
        return list;
    }

    public void saveRole(final Role role) throws AppDAOException {
        getHibernateTemplate().saveOrUpdate(role);
        getHibernateTemplate().flush();
    }
    //删除角色,还要删除员工角色关系,角色权限关系
    public void removeRole(int roleid) throws AppDAOException {
        Role role = getRole(roleid);
        removeStaffRole(role);
        removeRoleAuth(role);
        getHibernateTemplate().delete(role);
    }

//    private List getStaffRoles(Role role) {
//        return  getHibernateTemplate().find(
//            "from StaffRole a where a.roleid = " + role.getRoleid());
//    }

//    private void removeRoleAuth(Role role) {
//        List list = getStaffRoles(role);
//        for(int i = 0; i < list.size(); i++){
//            StaffRole staffRole = (StaffRole)list.get(i);
//            getHibernateTemplate().delete(staffRole);
//        }
//    }

    private void removeStaffRole(Role role) {
        List list = getHibernateTemplate().find(
            "from StaffRole a where a.roleid = " + role.getRoleid());
        for(int i = 0; i < list.size(); i++){
            StaffRole staffRole = (StaffRole)list.get(i);
            getHibernateTemplate().delete(staffRole);
        }
    }

    private void removeRoleAuth(Role role) {
        List list = getHibernateTemplate().find(
            "from RoleAuth a where a.roleid = " + role.getRoleid());
        for(int i = 0; i < list.size(); i++){
            RoleAuth roleAuth = (RoleAuth)list.get(i);
            getHibernateTemplate().delete(roleAuth);
        }
    }


    public List getRoleAuth(Role role){
//        return  getHibernateTemplate().find(
//            "select b from Role a, RoleAuth b, Auth c where " +
//            " a.roleid = " + role.getRoleid() +
//           " and a.roleid = b.roleid and b.authid = c.authid ");
        return  getHibernateTemplate().find(
            "select a from RoleAuth a where " +
            " a.roleid = " + role.getRoleid());

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -