package br.ufrgs.inf.dsmoura.repository.model.dao;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import br.ufrgs.inf.dsmoura.repository.model.entity.UserDTO;
public class UserDAO extends GenericDAO {
private static UserDAO instance;
public static synchronized UserDAO getInstance() {
if (instance == null) {
instance = new UserDAO();
}
return instance;
}
private UserDAO() {
}
public UserDTO findByEmail(String email) {
if (email == null || email.trim().isEmpty()) {
throw new RuntimeException("Email is null or empty = " + email);
}
EntityManager entityManager = createEntityManager();
Query query = entityManager.createNamedQuery("UserDTO.findByEmail");
query.setParameter("email", email);
try {
return (UserDTO) query.getSingleResult();
}
catch(NoResultException nRE) {
return null;
}
}
public UserDTO findByUsername(String username) {
if (username == null || username.trim().isEmpty()) {
throw new RuntimeException("Username is null or empty = " + username);
}
EntityManager entityManager = createEntityManager();
Query query = entityManager.createNamedQuery("UserDTO.findByUsername");
query.setParameter("username", username);
try {
return (UserDTO) query.getSingleResult();
}
catch(NoResultException nRE) {
return null;
}
}
}