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

📄 roledaohibernate.java.svn-base

📁 菲律宾的一个大学的图书管理系统 spring+hibernate+velocity
💻 SVN-BASE
字号:
/*
 * 创建日期 2005-4-11
 */
package biz.bluesky.pts.service.dao.impl;

import java.util.List;
import java.util.Set;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import org.springframework.orm.ObjectRetrievalFailureException;

import biz.bluesky.pts.model.TPermission;
import biz.bluesky.pts.model.TRole;
import biz.bluesky.pts.model.TRolePermission;
import biz.bluesky.pts.service.dao.IRoleDAO;


public class RoleDAOHibernate extends BaseDAOHibernate implements
        IRoleDAO {

    //查询所有的角色
    public List findRoles() {
        return getHibernateTemplate().find("from TRole");
    }

    //根据角色编号查询角色
    public TRole findRole(int roleId) {
        TRole role = (TRole)getHibernateTemplate().get(TRole.class,new Integer(roleId));     
        
        if(role == null) {
            throw new ObjectRetrievalFailureException(TRole.class,new Integer(roleId));
        }
        
        return role;
    }

    //根据角色名称查询角色
    public TRole findRole(String roleName) {
        List list = getHibernateTemplate().find("from TRole r where r.role=?",roleName);
        
        if(list.size() < 1) {
            return null;
        }
        else {
            return (TRole)list.get(0);
        }
    }

    //查询拥有此权限的角色
    public List findRolesByPermission(int permissionId) {
        StringBuffer sb = new StringBuffer(100);
        
        sb.append("from TRole roles where roles.roleId in ");
        sb.append("(select rp.roleId from TRolePermission rp where rp.permissionId=");
        sb.append(permissionId);
        sb.append(")");
        
        return getHibernateTemplate().find(sb.toString());
    }

    //查询不具备此权限的角色
    public List findNotRolesByPermission(int permissionId) {
        StringBuffer sb = new StringBuffer(100);
        
        sb.append("from TRole roles where roles.roleId not in ");
        sb.append("(select rp.roleId from TRolePermission rp where rp.permissionId=");
        sb.append(permissionId);
        sb.append(")");
        
        return getHibernateTemplate().find(sb.toString());
    }
    
    //查询教师所拥有的角色
    public List findRolesByTeacher(int teacherId) {
        StringBuffer sb = new StringBuffer(100);
        
        sb.append("from TRole roles where roles in ");
        sb.append("(select tr.roleId from TTeacherRole tr where tr.teacherId=");
        sb.append(teacherId);
        sb.append(")");
        
        return getHibernateTemplate().find(sb.toString());
    }
    
    //查询教师所不拥有的角色
    public List findInexistenceRolesByTeacher(int teacherId) {
        StringBuffer sb = new StringBuffer(100);
        
        sb.append("from TRole roles where roles not in ");
        sb.append("(select tr.roleId from TTeacherRole tr where tr.teacherId=");
        sb.append(teacherId);
        sb.append(")");
        
        return getHibernateTemplate().find(sb.toString());
    }
   
    //保存一个角色
    public void saveRole(TRole role) {
        getHibernateTemplate().saveOrUpdate(role);
        getHibernateTemplate().flush();
        
    }

    //新增权限给角色
    public void savePermissionToRole(final TRolePermission rp) {
        getHibernateTemplate().saveOrUpdate(rp);
        getHibernateTemplate().flush();
    }

    //删除角色
    public void removeRole(int roleId) {
        TRole role = findRole(roleId);
        getHibernateTemplate().delete(role);
    }

    //删除角色的权限
    public void removePermissionFromRole(int permissionId, int roleId) {
        StringBuffer sb = new StringBuffer(100);
        sb.append("from TRolePermission rp where rp.roleId=");
        sb.append(roleId);
        sb.append(" and rp.permissionId=");
        sb.append(permissionId);
        
        List list = getHibernateTemplate().find(sb.toString());
        
        if(list.size() < 1) {
            throw new ObjectRetrievalFailureException(TRolePermission.class,""	);
        }
        
        getHibernateTemplate().delete((TRolePermission)list.get(0));
        
    }


    
}

⌨️ 快捷键说明

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