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

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

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.UserAuth;
import ru.webcrafter.client.user.dao.UserDao;

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

public class HibernateUserDao extends HibernateDaoSupport implements UserDao {

    public boolean userExists(final String userName) {
        if (userName == null) return false;
        Long userId = (Long) getHibernateTemplate().execute(new HibernateCallback() {
            public Object doInHibernate(Session session) {
                org.hibernate.SQLQuery q = session.createSQLQuery("SELECT userId FROM ex_user WHERE userName=?");
                q.addScalar("userId", org.hibernate.Hibernate.LONG);
                q.setString(0, userName);
                Iterator results = q.list().iterator();
                return (results.hasNext()) ? results.next() : null;
            }
        });
        return (userId != null && userId.longValue() > 0);
    }

    public Collection<UserAuth> getUsers() {
        return getHibernateTemplate().loadAll(UserAuth.class);
    }

    public UserAuth getUser(long id) {
        return (UserAuth) getHibernateTemplate().get(UserAuth.class, id);
    }

    public UserAuth getUser(String userName) {
        UserAuth u = null;
        if (userName != null) {
            List list = getHibernateTemplate().find(GET_USER_BY_USERNAME, userName);
            if (list != null && !list.isEmpty()) u = (UserAuth) list.get(0);
        }
        return u;
    }

    public UserAuth createUser(UserAuth u) {
        String userName = u.getUserName();
        if (userExists(userName)) throw new DataIntegrityViolationException(userName);
        u.setCreatedOn(System.currentTimeMillis());
        getHibernateTemplate().save(u);
        return u;
    }

    public void updateUser(UserAuth u) {
        if (u != null) getHibernateTemplate().update(u);
    }

    public boolean deleteUser(UserAuth u) {
        if (u == null) return false;
        boolean wasDeleted = false;
        try {
            getHibernateTemplate().delete(u);
            wasDeleted = true;
        } catch (Exception zzz) {
            zzz.printStackTrace();
        }
        return wasDeleted;
    }

    private static final String GET_USER_BY_USERNAME = "from UserAuth u where u.userName=?";
}
TOP

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

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.