blob: 16913bd72c89186a73a45fb49ad08a45e387dcab [file] [log] [blame]
margaretha38d530e2017-07-11 19:06:50 +02001package de.ids_mannheim.korap.dao;
2
margaretha543f2002017-07-14 00:27:15 +02003import java.util.List;
4
5import javax.persistence.EntityManager;
6import javax.persistence.PersistenceContext;
7import javax.persistence.Query;
8import javax.persistence.criteria.CriteriaBuilder;
9import javax.persistence.criteria.CriteriaQuery;
10import javax.persistence.criteria.Root;
11
margarethad3c0fc92017-10-25 15:03:32 +020012import org.springframework.stereotype.Repository;
margaretha38d530e2017-07-11 19:06:50 +020013
margaretha543f2002017-07-14 00:27:15 +020014import de.ids_mannheim.korap.entity.Resource;
margarethad3c0fc92017-10-25 15:03:32 +020015import de.ids_mannheim.korap.entity.Resource_;
margaretha38d530e2017-07-11 19:06:50 +020016
margaretha543f2002017-07-14 00:27:15 +020017/**
18 * ResourceDao manages SQL queries regarding resource info and layers.
margaretha38d530e2017-07-11 19:06:50 +020019 *
20 * @author margaretha
21 *
22 */
margarethad3c0fc92017-10-25 15:03:32 +020023@Repository
margaretha38d530e2017-07-11 19:06:50 +020024public class ResourceDao {
25
margaretha543f2002017-07-14 00:27:15 +020026 @PersistenceContext
27 private EntityManager entityManager;
margarethad3c0fc92017-10-25 15:03:32 +020028
margarethae353dfa2017-07-18 19:23:29 +020029 /** Select all from the resource table
30 *
31 * @return a list of resources
32 */
margaretha543f2002017-07-14 00:27:15 +020033 public List<Resource> getAllResources () {
34 CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
margarethad3c0fc92017-10-25 15:03:32 +020035 CriteriaQuery<Resource> query =
36 criteriaBuilder.createQuery(Resource.class);
margarethae353dfa2017-07-18 19:23:29 +020037 Root<Resource> resource = query.from(Resource.class);
margarethad3c0fc92017-10-25 15:03:32 +020038 resource.fetch(Resource_.layers);
margarethae353dfa2017-07-18 19:23:29 +020039 query.select(resource);
40 Query q = entityManager.createQuery(query);
margaretha543f2002017-07-14 00:27:15 +020041 return q.getResultList();
margaretha38d530e2017-07-11 19:06:50 +020042 }
margaretha38d530e2017-07-11 19:06:50 +020043}