Package kz.sysdesign.app.DAO

Source Code of kz.sysdesign.app.DAO.StoreUserDAOImpl

package kz.sysdesign.app.DAO;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import kz.sysdesign.app.Entities.StoreUser;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

/**
* Implementation for Store user DAO
* Methods support database interaction for store user data.
*
* @author Kaspars Zarinovs <k.zarinovs@ncl.ac.uk>
*
*/
@Repository
public class StoreUserDAOImpl implements StoreUserDAO {

  @PersistenceContext(unitName="JpaPersistenceUnit")
  private EntityManager em;

  /**
   * @see kz.sysdesign.app.DAO.StoreUserDAO#addUser(kz.sysdesign.app.Entities.StoreUser)
   */
  @Transactional
  public boolean addUser(StoreUser storeUser)
  {   
    if(storeUser == null)
      return false;

    em.persist(storeUser);
    return true;
  }

  /**
   * @see kz.sysdesign.app.DAO.StoreUserDAO#authenticate(java.lang.String, java.lang.String)
   */
  public StoreUser authenticate(String loginName, String loginPassword) {
    if(loginName == null || loginPassword == null)
      return null;

    final String queryString = "FROM " + StoreUser.class.getSimpleName() + " u WHERE WHERE LOWER(u.email) = LOWER(:loginName) AND u.password = :loginPassword";
    Query query = em.createQuery(queryString).setParameter("loginName", loginName).setParameter("loginPassword", loginPassword);

    StoreUser user = null;
    try
    {
      user = (StoreUser) query.getSingleResult();
    }
    catch(NonUniqueResultException nure) {  }
    catch(NoResultException nre) {  }

    return user;
  }

  /**
   * @see kz.sysdesign.app.DAO.StoreUserDAO#getSalt(java.lang.String)
   */
  public String getSalt(String loginName)
  {
    final String queryString = "SELECT u.salt FROM " + StoreUser.class.getSimpleName() + " u WHERE LOWER(u.email) = LOWER(:loginName)";
    Query query = em.createQuery(queryString).setParameter("loginName", loginName);

    String salt = null;
    try
    {
      salt = (String) query.getSingleResult();
    }
    catch(NonUniqueResultException nure) {  }
    catch(NoResultException nre) {  }

    return salt;
  }

}
TOP

Related Classes of kz.sysdesign.app.DAO.StoreUserDAOImpl

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.