Package tk.vovanok.webapplicationexample.dao

Source Code of tk.vovanok.webapplicationexample.dao.UserDao

package tk.vovanok.webapplicationexample.dao;

import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Default;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import tk.vovanok.webapplicationexample.entities.User;

/**
*
* @author Vovan <vovanok1992 at gmail.com>
*/

@Default
@RequestScoped
public class UserDao extends GenericJpaDao<User, Long>
                        implements UserDaoInterface{

    public UserDao() {
        super(User.class);
    }
   
    @Override
    public boolean exists(String userName) {
        if(userName == null) return false;
       
        Query q = getEntityManager().createQuery("select count(*) from User u where u.login = :userName")
                                                    .setParameter("userName", userName);
       
        Long count =(Long) q.getSingleResult();
       
        return count > 0;
    }

    @Override
    public User loadByUserName(String userName) {
        if(userName == null || userName.trim().equals("")) return null;
       
        Query q = getEntityManager().createQuery("select u from User u where u.login = :userName").setParameter("userName", userName);
       
        User u = null;
     
        try {
            u = (User) q.getSingleResult();
        } catch (NoResultException e) {
            //nop
        }

        return u;
    }
   
    @Override
    public User findById(Long id) {
       Session session = getEntityManager().unwrap(Session.class);
       User u =(User) session.get(User.class, id);
       return u;
    }

   

    @Override
    public List<User> getUsers(int starstRow, int pageSize, String orderField, boolean asc) {
        List<User> result = null;
       
        Session session = getEntityManager().unwrap(Session.class);
       
        Criteria c = session.createCriteria(User.class);
       
        c.setFirstResult(starstRow);
        c.setMaxResults(pageSize);
       
        if(orderField!=null){
            if(asc) c.addOrder(Order.asc(orderField));
            else c.addOrder(Order.desc(orderField));
        }
       
        result = (List<User>) c.list();
        return result;
    }   
   

}
TOP

Related Classes of tk.vovanok.webapplicationexample.dao.UserDao

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.