argos/dmp-backend/src/main/java/eu/eudat/dao/entities/ServiceDaoImpl.java

59 lines
1.8 KiB
Java
Raw Normal View History

2017-12-15 00:01:26 +01:00
package eu.eudat.dao.entities;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.persistence.TypedQuery;
2017-12-08 15:52:12 +01:00
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.hibernate.query.Query;
2017-12-15 00:01:26 +01:00
import eu.eudat.dao.JpaDao;
import eu.eudat.entities.Service;
import eu.eudat.entities.responses.IDLabelPair;
import eu.eudat.models.criteria.Criteria;
import org.springframework.stereotype.Component;
2017-12-15 00:01:26 +01:00
@Component("serviceDao")
public class ServiceDaoImpl extends JpaDao<Service, UUID> implements ServiceDao {
public Service loadDetails(Service t) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<UUID> listAllIDs() {
String queryString = "SELECT service.id FROM Service service";
TypedQuery<UUID> typedQuery = entityManager.createQuery(queryString, UUID.class);
return typedQuery.getResultList();
}
@Override
public List<IDLabelPair> listAllIDsLabels() {
String queryString = "SELECT service.id, service.label FROM Service service";
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-12-08 15:52:12 +01:00
@Override
public List<Service> listBy(Criteria<Service> criteria) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Service> criteriaQuery = criteriaBuilder .createQuery(Service.class);
Root<Service> root = criteriaQuery.from(Service.class);
criteriaQuery.where(criteriaBuilder.equal(root.get("reference"), criteria.getLike()));
TypedQuery<Service> typedQuery = entityManager.createQuery(criteriaQuery);
return typedQuery.getResultList();
}
}