package es.uniovi.asw.trivial.db.impl.local.persistencia.consultas.impl; import java.io.IOException; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.PersistenceException; import es.uniovi.asw.trivial.db.impl.local.persistencia.consultas.UsuarioFinder; import es.uniovi.asw.trivial.db.impl.local.persistencia.consultas.util.Jpa; import es.uniovi.asw.trivial.db.impl.local.persistencia.model.Usuario; public class UsuarioFinderImpl implements UsuarioFinder { public void save(Usuario usuario) throws IOException { EntityManager em = Jpa.createEntityManager(); EntityTransaction trx = em.getTransaction(); try{ trx.begin(); Jpa.getManager().merge(usuario); trx.commit(); }catch(PersistenceException e) { throw new IOException(e.getMessage()); } } public void delete(Usuario usuario) { Jpa.getManager().remove(usuario); } public List<Usuario> findAll() { EntityManager em = Jpa.createEntityManager(); EntityTransaction trx = em.getTransaction(); // Contexto persistencia abierto try { trx.begin(); return Jpa.getManager() .createNamedQuery("Usuario.findAll", Usuario.class) .getResultList(); } catch (PersistenceException e) { try { throw new IOException("Base de datos NO conectada."); } catch (IOException e1) { e1.printStackTrace(); } } return null; } }