Package ru.webcrafter.client.user.dao.hibernate

Source Code of ru.webcrafter.client.user.dao.hibernate.HibernateRoleDao

package ru.webcrafter.client.user.dao.hibernate;

import org.hibernate.Session;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import ru.webcrafter.client.user.Role;
import ru.webcrafter.client.user.dao.RoleDao;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;

public class HibernateRoleDao extends HibernateDaoSupport implements RoleDao {

    public boolean roleExists(final String roleName) {
        if (roleName == null) return false;
        Object obj = getHibernateTemplate().execute(new HibernateCallback() {
            public Object doInHibernate(Session session) {
                org.hibernate.SQLQuery q = session.createSQLQuery("SELECT roleId FROM ex_role WHERE name=?");
                q.addScalar("roleId", org.hibernate.Hibernate.LONG);
                q.setString(0, roleName);
                Iterator results = q.list().iterator();
                return (results.hasNext()) ? results.next() : null;
            }
        });
        return (obj != null);
    }

    public Collection<Role> getRoles() {
        return getHibernateTemplate().loadAll(Role.class);
    }

    public Role getRole(long id) {
        return (Role) getHibernateTemplate().get(Role.class, id);
    }

    public Role getRole(String roleName) {
        Role r = null;
        if (roleName != null) {
            List list = getHibernateTemplate().find("from Role r where r.name=?", roleName);
            if (list != null && !list.isEmpty()) r = (Role) list.get(0);
        }
        return r;
    }

    public Role createRole(String roleName) {
        if (roleExists(roleName)) throw new DataIntegrityViolationException(roleName);
        Role r = new Role();
        r.setName(roleName);
        getHibernateTemplate().save(r);
        return r;
    }

    public void updateRole(Role r) {
        if (r != null) {
            getHibernateTemplate().update(r);
        }
    }

    public boolean deleteRole(Role r) {
        if (r == null) return false;
        boolean wasDeleted = false;
        try {
            getHibernateTemplate().delete(r);
            wasDeleted = true;
        } catch (Exception zzz) {
            zzz.printStackTrace();
        }
        return wasDeleted;
    }
}
TOP

Related Classes of ru.webcrafter.client.user.dao.hibernate.HibernateRoleDao

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.