package persistencia;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.TypedQuery;
@Stateless
public class InvitacionDAOImpl extends BaseDAO<Invitacion> implements
InvitacionDAO {
private static final String invitacionesPorUsuarioQuery =
"SELECT i FROM Usuario u, Invitacion i " +
" WHERE u.id = :idUsuario " +
" AND i MEMBER OF u.invitaciones";
private static final String invitacionPorContactoRteQuery =
"SELECT i FROM Usuario u, Invitacion i " +
"WHERE i MEMBER OF u.invitaciones " +
" AND u.id = :idContacto " +
" AND i.remitente.id = :idRemitente ";
@Override
public Invitacion buscarPorId(int id) {
Invitacion ret = em.find(Invitacion.class, id);
return ret;
}
@Override
public List<Invitacion> getInvitacionesPorUsuario(int idUsuario) {
TypedQuery<Invitacion> query = em.createQuery(invitacionesPorUsuarioQuery,
Invitacion.class);
query.setParameter("idUsuario", idUsuario);
return query.getResultList();
}
@Override
public Invitacion getInvitacionPorContactoRmte(int idContacto, int remitente) {
TypedQuery<Invitacion> query = em.createQuery(invitacionPorContactoRteQuery, Invitacion.class);
query.setParameter("idRemitente", remitente);
query.setParameter("idContacto", idContacto);
Invitacion ret = null;
List<Invitacion> res = query.getResultList();
if (!res.isEmpty()) {
ret = res.get(0);
}
return ret;
}
}