Fixed resource DAO & added tests.
Change-Id: I9222d20efa62f7bc37b8e38a2d1ec6b0ea70117e
diff --git a/full/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java b/full/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
index ff3ffd0..d12ff3f 100644
--- a/full/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
+++ b/full/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
@@ -4,8 +4,10 @@
import java.util.Set;
import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
+import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
@@ -37,15 +39,14 @@
*
* @return a list of resources
*/
- @SuppressWarnings("unchecked")
public List<Resource> getAllResources () {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Resource> query =
criteriaBuilder.createQuery(Resource.class);
Root<Resource> resource = query.from(Resource.class);
query.select(resource);
-
- Query q = entityManager.createQuery(query);
+
+ TypedQuery<Resource> q = entityManager.createQuery(query);
return q.getResultList();
}
@@ -58,12 +59,17 @@
query.where(criteriaBuilder.equal(resource.get(Resource_.id), id));
Query q = entityManager.createQuery(query);
- return (Resource) q.getSingleResult();
+ try {
+ return (Resource) q.getSingleResult();
+ }
+ catch (NoResultException e) {
+ return null;
+ }
}
public void createResource (String id, String germanTitle,
- String englishTitle, String englishDescription, Set<AnnotationLayer> layers)
- throws KustvaktException {
+ String englishTitle, String englishDescription,
+ Set<AnnotationLayer> layers) throws KustvaktException {
ParameterChecker.checkStringValue(id, "id");
ParameterChecker.checkStringValue(englishTitle, "en_title");
ParameterChecker.checkStringValue(germanTitle, "de_title");
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java b/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java
index fbe3f92..813adc5 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java
@@ -6,8 +6,8 @@
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
-import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;