package edu.asu.spring.quadriga.dao.conceptcollection.impl;
import java.util.List;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;
import edu.asu.spring.quadriga.dao.conceptcollection.IConceptCollectionCollaboratorDAO;
import edu.asu.spring.quadriga.dao.impl.BaseDAO;
import edu.asu.spring.quadriga.dto.ConceptCollectionCollaboratorDTO;
import edu.asu.spring.quadriga.dto.QuadrigaUserDTO;
@Repository
public class ConceptCollectionCollaboratorDAO extends
BaseDAO<ConceptCollectionCollaboratorDTO> implements
IConceptCollectionCollaboratorDAO {
@Override
public ConceptCollectionCollaboratorDTO getDTO(String id) {
return getDTO(ConceptCollectionCollaboratorDTO.class, id);
}
@Override
public List<QuadrigaUserDTO> getUsersNotCollaborating(String dtoId) {
Query query = sessionFactory
.getCurrentSession()
.createQuery(
"SELECT user FROM QuadrigaUserDTO user WHERE user.username NOT IN (Select quadrigaUserDTO.username from"
+ " ConceptCollectionCollaboratorDTO ccCollab where ccCollab.conceptCollectionDTO.conceptCollectionid =:conceptCollectionid)"
+ " AND user.username NOT IN (Select ccCollab.conceptCollectionDTO.collectionowner.username from"
+ " ConceptCollectionCollaboratorDTO ccCollab where ccCollab.conceptCollectionDTO.conceptCollectionid =:conceptCollectionid)");
query.setParameter("conceptCollectionid", dtoId);
return query.list();
}
}