68 lines
2.3 KiB
Java
68 lines
2.3 KiB
Java
package eu.eudat.dao.entities;
|
|
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.UUID;
|
|
import java.util.stream.Collectors;
|
|
|
|
import javax.persistence.Query;
|
|
import javax.persistence.TypedQuery;
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
import javax.persistence.criteria.Root;
|
|
|
|
import eu.eudat.dao.JpaDao;
|
|
import eu.eudat.entities.Dataset;
|
|
import eu.eudat.entities.Project;
|
|
import eu.eudat.entities.responses.IDLabelPair;
|
|
import eu.eudat.models.dataset.DatasetTableRequest;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
@Component("datasetDao")
|
|
public class DatasetDaoImpl extends JpaDao<Dataset, UUID> implements DatasetDao {
|
|
|
|
public Dataset loadDetails(Dataset t) {
|
|
// TODO Auto-generated method stub
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public List<UUID> listAllIDs() {
|
|
String queryString = "SELECT dataset.id FROM Dataset dataset where dataset.status>=0";
|
|
TypedQuery<UUID> typedQuery = entityManager.createQuery(queryString, UUID.class);
|
|
return typedQuery.getResultList();
|
|
}
|
|
|
|
|
|
@Override
|
|
public List<IDLabelPair> listAllIDsLabels() {
|
|
String queryString = "SELECT dataset.id, dataset.label FROM Dataset dataset where dataset.status>=0";
|
|
Query query = (Query) entityManager.createQuery(queryString);
|
|
List<Object[]> rows = query.getResultList();
|
|
return rows.stream().map(row -> {
|
|
return new IDLabelPair(row[0].toString(), row[1].toString());
|
|
})
|
|
.collect(Collectors.toList());
|
|
}
|
|
|
|
@Override
|
|
public List<Dataset> getDatasetsOfDmp(UUID dmpID) {
|
|
String queryString = "FROM Dataset dataset where dataset.dmp.id=:dmpID and dataset.status>=0";
|
|
Query query = (Query) entityManager.createQuery(queryString);
|
|
query.setParameter("dmpID", dmpID);
|
|
List<Dataset> datasets = (List<Dataset>) query.getResultList();
|
|
return datasets;
|
|
}
|
|
|
|
@Override
|
|
public List<Dataset> getWithCriteria(DatasetTableRequest datasetTableRequest) {
|
|
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
|
CriteriaQuery<Dataset> criteriaQuery = criteriaBuilder .createQuery(Dataset.class);
|
|
Root<Dataset> root = criteriaQuery.from(Dataset.class);
|
|
TypedQuery<Dataset> typedQuery = entityManager.createQuery(criteriaQuery);
|
|
typedQuery.setFirstResult(datasetTableRequest.getOffset());
|
|
typedQuery.setMaxResults(datasetTableRequest.getLength());
|
|
return typedQuery.getResultList();
|
|
}
|
|
}
|