package banco.DAO; import java.util.List; import javax.persistence.NoResultException; import javax.persistence.Query; import banco.connection.EclipseLinkConnection; import banco.modelo.Usuario; import banco.utils.UsuarioUtils; public class UsuarioDAO extends EclipseLinkConnection implements UsuarioUtils{ @Override public void saveOrUpdate(Usuario modelo) { if(modelo.getId() != null) merge(modelo); else persist(modelo); } @Override public void delete(Usuario modelo) { remove(modelo); } @Override public Usuario find(Long id) { Query q = getEntityManager().createQuery("select u from Usuario u where u.id = :id"); q.setParameter("id", id); return (Usuario)q.getSingleResult(); } @SuppressWarnings("unchecked") @Override public List<Usuario> findAll() { Query q = getEntityManager().createQuery("select u from Usuario u"); List<Usuario> lista = q.getResultList(); return lista; } @Override public Usuario findByLoginSenhaStatus(String login, String senha, Boolean status) { try{ Query q = getEntityManager().createQuery("select u from Usuario u " + "where (u.login like :login or :login is null) " + "and (u.senha like :senha or :senha is null) " + "and (u.ativo = :status or :status is null)"); q.setParameter("login", login) .setParameter("senha", senha) .setParameter("status", status); return (Usuario)q.getSingleResult(); }catch(NoResultException e){ return null; } } @SuppressWarnings("unchecked") @Override public List<Usuario> findAllByStatus(boolean status) { Query q = getEntityManager().createQuery("select u from Usuario u where u.ativo = :status"); q.setParameter("status", status); return q.getResultList(); } @SuppressWarnings("unchecked") @Override public List<Usuario> findAllByLoginAndStatus(String login, Boolean status) { Query q = getEntityManager().createQuery("select u from Usuario u where (u.login like :login or :login is null) " + "and (u.ativo = :status or :status is null) "); q.setParameter("login", login) .setParameter("status", status); return q.getResultList(); } }