2017-12-15 00:01:26 +01:00
|
|
|
package eu.eudat.dao.entities;
|
2017-09-14 12:37:36 +02:00
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.UUID;
|
2017-10-04 11:48:21 +02:00
|
|
|
import java.util.stream.Collectors;
|
2017-09-14 12:37:36 +02:00
|
|
|
|
|
|
|
import javax.persistence.TypedQuery;
|
2017-12-14 18:07:09 +01:00
|
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
|
|
import javax.persistence.criteria.Root;
|
2017-09-14 12:37:36 +02:00
|
|
|
|
2017-10-04 11:48:21 +02:00
|
|
|
import org.hibernate.query.Query;
|
|
|
|
|
2017-12-15 00:01:26 +01:00
|
|
|
import eu.eudat.dao.JpaDao;
|
|
|
|
import eu.eudat.entities.Project;
|
|
|
|
import eu.eudat.entities.responses.IDLabelPair;
|
|
|
|
import eu.eudat.models.project.ProjectTableRequest;
|
|
|
|
import org.springframework.stereotype.Component;
|
2017-09-14 12:37:36 +02:00
|
|
|
|
2017-12-15 00:01:26 +01:00
|
|
|
@Component("projectDao")
|
2017-09-14 12:37:36 +02:00
|
|
|
public class ProjectDaoImpl extends JpaDao<Project, UUID> implements ProjectDao {
|
|
|
|
|
|
|
|
public Project loadDetails(Project t) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public List<UUID> listAllIDs() {
|
|
|
|
String queryString = "SELECT project.id FROM Project project";
|
|
|
|
TypedQuery<UUID> typedQuery = entityManager.createQuery(queryString, UUID.class);
|
|
|
|
return typedQuery.getResultList();
|
|
|
|
}
|
|
|
|
|
2017-10-04 11:48:21 +02:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public List<IDLabelPair> listAllIDsLabels() {
|
|
|
|
String queryString = "SELECT project.id, project.label FROM Project project";
|
|
|
|
Query query = (Query) entityManager.createQuery(queryString);
|
|
|
|
List<Object[]> rows = query.list();
|
|
|
|
return rows.stream().map(row -> {
|
|
|
|
return new IDLabelPair(row[0].toString(), row[1].toString());
|
|
|
|
})
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
|
2017-11-17 01:43:16 +01:00
|
|
|
|
|
|
|
public List<Project> getProjectsOfUser(String userID){
|
|
|
|
|
|
|
|
String queryString = "select p from Project p where p.creationUser.id=:userid and project.status >= 0";
|
|
|
|
TypedQuery<Project> typedQuery = entityManager.createQuery(queryString, Project.class);
|
|
|
|
typedQuery.setParameter("userid", UUID.fromString(userID));
|
|
|
|
try {
|
|
|
|
return typedQuery.getResultList();
|
|
|
|
}
|
2017-12-15 00:01:26 +01:00
|
|
|
catch(Exception ex) { //no need to distinguish between eu.eudat.exceptions for the moment
|
2017-11-17 01:43:16 +01:00
|
|
|
ex.printStackTrace();
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2017-12-14 18:07:09 +01:00
|
|
|
@Override
|
|
|
|
public List<Project> getWithCriteria(ProjectTableRequest projectTableRequest) {
|
|
|
|
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
|
|
|
CriteriaQuery<Project> criteriaQuery = criteriaBuilder .createQuery(Project.class);
|
|
|
|
Root<Project> root = criteriaQuery.from(Project.class);
|
|
|
|
TypedQuery<Project> typedQuery = entityManager.createQuery(criteriaQuery);
|
|
|
|
typedQuery.setFirstResult(projectTableRequest.getOffset());
|
|
|
|
typedQuery.setMaxResults(projectTableRequest.getLength());
|
|
|
|
return typedQuery.getResultList();
|
|
|
|
}
|
|
|
|
|
2017-11-17 01:43:16 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
2017-09-14 12:37:36 +02:00
|
|
|
|
|
|
|
}
|