package persistencia; import java.util.List; import javax.ejb.Stateless; import javax.persistence.TypedQuery; @Stateless public class CheckInDAOImpl extends BaseDAO<CheckIn> implements CheckInDAO { private static final String getCheckInAmigos = "SELECT c FROM Usuario u " + " JOIN u.contactos con " + " JOIN con.checkIns c " + " WHERE u.id = :userId"; private static final String getCheckInAmigosLocal = "SELECT c FROM Usuario u " + " JOIN u.contactos con " + " JOIN con.checkIns c " + " WHERE u.id = :userId " + " AND c.sitioInteres.id = :sitioId"; @Override public CheckIn buscarPorId(int id) { return em.find(CheckIn.class, id); } @Override public List<CheckIn> getCheckInAmigos(int idUsuario) { TypedQuery<CheckIn> query = em.createQuery(getCheckInAmigos, CheckIn.class); query.setParameter("userId", idUsuario); return query.getResultList(); } @Override public List<CheckIn> getCheckInAmigosLocal(int idUsuario, int sitioId) { TypedQuery<CheckIn> query = em.createQuery(getCheckInAmigosLocal, CheckIn.class); query.setParameter("userId", idUsuario); query.setParameter("sitioId", sitioId); return query.getResultList(); } }