Commit 175871fd by Rubén Ramírez

fix: [RepositorioUsuario]: Corregidas algunas funciones en el repositorio para…

fix: [RepositorioUsuario]: Corregidas algunas funciones en el repositorio para la correcta división de capas
parent ecff9b3a
......@@ -17,33 +17,10 @@ public class RepositorioUsuario {
@PersistenceContext
EntityManager em;
public void guardar(Usuario usuario) {
// Email no registrados
boolean emailExistente = !em.createQuery("SELECT u FROM Usuario u WHERE u.email = :email", Usuario.class)
.setParameter("email", usuario.getEmail())
.getResultList()
.isEmpty();
if (emailExistente) {
throw new UsuarioYaRegistrado();
}
//Nombre de usuario no utilizado
boolean nombreUsuarioExistente = !em.createQuery("SELECT u FROM Usuario u WHERE u.nombreUsuario = :nombreUsuario", Usuario.class)
.setParameter("nombreUsuario", usuario.getNombreUsuario())
.getResultList()
.isEmpty();
if (nombreUsuarioExistente) {
throw new NombreUsuarioYaCogido();
}
em.persist(usuario);
}
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public Optional<Usuario> findByEmail(String email) {
String query = "SELECT u FROM Usuario u WHERE u.email = :email";
......@@ -54,24 +31,26 @@ public class RepositorioUsuario {
.findFirst();
}
@Transactional(readOnly = true)
public Optional<Usuario> findById(Long id) {
Usuario usuario = em.find(Usuario.class, id);
return Optional.ofNullable(usuario);
}
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public boolean existePorEmail(String email) {
return !em.createQuery("SELECT u FROM Usuario u WHERE u.email = :email", Usuario.class)
Long count = em.createQuery("SELECT COUNT(u) FROM Usuario u WHERE u.email = :email", Long.class)
.setParameter("email", email)
.getResultList()
.isEmpty();
.getSingleResult();
return count > 0;
}
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public boolean existePorNombreUsuario(String nombreUsuario) {
return !em.createQuery("SELECT u FROM Usuario u WHERE u.nombreUsuario = :nombreUsuario", Usuario.class)
Long count = em.createQuery("SELECT COUNT(u) FROM Usuario u WHERE u.nombreUsuario = :nombreUsuario", Long.class)
.setParameter("nombreUsuario", nombreUsuario)
.getResultList()
.isEmpty();
.getSingleResult();
return count > 0;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment