diff --git a/pom.xml b/pom.xml
index db2d155f..54fd04ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
1.3.173
3.3.1
1.7.7
- 3.6.0
+ 4.1.4
1.0.13
2.53.0
1.2.0
@@ -248,15 +248,10 @@
1.2.1
- com.mysema.querydsl
+ com.querydsl
querydsl-jpa
${querydsl.version}
-
- com.mysema.querydsl
- querydsl-apt
- ${querydsl.version}
-
org.apache.commons
commons-csv
@@ -487,8 +482,8 @@
com.mysema.maven
- maven-apt-plugin
- 1.0.4
+ apt-maven-plugin
+ 1.1.3
@@ -496,10 +491,17 @@
target/metamodel
- com.mysema.query.apt.jpa.JPAAnnotationProcessor
+ com.querydsl.apt.jpa.JPAAnnotationProcessor
+
+
+ com.querydsl
+ querydsl-apt
+ ${querydsl.version}
+
+
org.apache.maven.plugins
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Assignments.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Assignments.java
index 77fd50eb..20913122 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Assignments.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Assignments.java
@@ -19,18 +19,18 @@ public Assignments(EntityManager em) {
}
public Assignment find(CourseEdition course, Long assignmentId) {
- return ensureNotNull(query().from(QAssignment.assignment)
+ return ensureNotNull(query().selectFrom(QAssignment.assignment)
.where(QAssignment.assignment.courseEdition.eq(course)
.and(QAssignment.assignment.assignmentId.eq(assignmentId)))
- .singleResult(QAssignment.assignment),
+ .fetchOne(),
"Could not find assignment " + assignmentId + " for " + course.getCode());
}
public boolean exists(CourseEdition course, Long assignmentId) {
- return query().from(QAssignment.assignment)
+ return query().selectFrom(QAssignment.assignment)
.where(QAssignment.assignment.courseEdition.eq(course)
.and(QAssignment.assignment.assignmentId.eq(assignmentId)))
- .exists();
+ .fetchCount() > 0;
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildResults.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildResults.java
index 9c4c7fe8..d025645d 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildResults.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildResults.java
@@ -14,6 +14,8 @@
import java.util.Collection;
import java.util.Map;
+
+import static com.querydsl.core.group.GroupBy.groupBy;
import static nl.tudelft.ewi.devhub.server.database.entities.QBuildResult.buildResult;
public class BuildResults extends Controller {
@@ -33,10 +35,10 @@ public BuildResult find(RepositoryEntity repository, String commitId) {
Preconditions.checkNotNull(repository);
Preconditions.checkNotNull(commitId);
- BuildResult result = query().from(buildResult)
+ BuildResult result = query().selectFrom(buildResult)
.where(buildResult.commit.repository.id.eq(repository.getId()))
.where(buildResult.commit.commitId.equalsIgnoreCase(commitId))
- .singleResult(buildResult);
+ .fetchOne();
if (result == null) {
throw new EntityNotFoundException();
@@ -53,10 +55,10 @@ public Map findBuildResults(RepositoryEntity repository, Co
return ImmutableMap.of();
}
- return query().from(buildResult)
+ return query().selectFrom(buildResult)
.where(buildResult.commit.repository.eq(repository)
.and(buildResult.commit.commitId.in(commitIds)))
- .map(buildResult.commit.commitId, buildResult);
+ .transform(groupBy(buildResult.commit.commitId).as(buildResult));
}
@Transactional
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildServers.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildServers.java
index 071bccd2..ebe0b0af 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildServers.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/BuildServers.java
@@ -21,16 +21,16 @@ public BuildServers(EntityManager entityManager) {
@Transactional
public List listAll() {
- return ImmutableList.copyOf(query().from(QBuildServer.buildServer)
+ return ImmutableList.copyOf(query().selectFrom(QBuildServer.buildServer)
.orderBy(QBuildServer.buildServer.name.toLowerCase().asc())
- .list(QBuildServer.buildServer));
+ .fetch());
}
@Transactional
public BuildServer findById(long id) {
- BuildServer buildServer = query().from(QBuildServer.buildServer)
+ BuildServer buildServer = query().selectFrom(QBuildServer.buildServer)
.where(QBuildServer.buildServer.id.eq(id))
- .singleResult(QBuildServer.buildServer);
+ .fetchOne();
if (buildServer == null) {
throw new EntityNotFoundException();
@@ -43,10 +43,10 @@ public BuildServer findByCredentials(String name, String secret) {
Preconditions.checkNotNull(name);
Preconditions.checkNotNull(secret);
- BuildServer buildServer = query().from(QBuildServer.buildServer)
+ BuildServer buildServer = query().selectFrom(QBuildServer.buildServer)
.where(QBuildServer.buildServer.name.equalsIgnoreCase(name))
.where(QBuildServer.buildServer.secret.eq(secret))
- .singleResult(QBuildServer.buildServer);
+ .fetchOne();
if (buildServer == null) {
throw new EntityNotFoundException();
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CommitComments.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CommitComments.java
index 4a29fe9a..fc8c30d4 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CommitComments.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CommitComments.java
@@ -13,6 +13,8 @@
import java.util.Map;
import java.util.stream.Stream;
+
+import static com.querydsl.core.group.GroupBy.groupBy;
import static nl.tudelft.ewi.devhub.server.database.entities.comments.QCommitComment.commitComment;
/**
@@ -33,11 +35,11 @@ public CommitComments(final EntityManager entityManager) {
*/
@Transactional
public List getCommentsFor(RepositoryEntity repositoryEntity, String... commitIds) {
- return query().from(commitComment)
+ return query().selectFrom(commitComment)
.where(commitComment.source.sourceFilePath.isNull()
.and(commitComment.commit.repository.eq(repositoryEntity)
.and(commitComment.commit.commitId.in(commitIds))))
- .list(commitComment);
+ .fetch();
}
/**
@@ -48,11 +50,11 @@ public List getCommentsFor(RepositoryEntity repositoryEntity, Str
*/
@Transactional
public List getCommentsFor(RepositoryEntity repositoryEntity, List commitIds) {
- return query().from(commitComment)
+ return query().selectFrom(commitComment)
.where(commitComment.source.sourceFilePath.isNull()
.and(commitComment.commit.repository.eq(repositoryEntity)
.and(commitComment.commit.commitId.in(commitIds))))
- .list(commitComment);
+ .fetch();
}
/**
@@ -63,11 +65,11 @@ public List getCommentsFor(RepositoryEntity repositoryEntity, Lis
*/
@Transactional
public List getInlineCommentsFor(RepositoryEntity repositoryEntity, Collection commitIds) {
- return query().from(commitComment)
+ return query().selectFrom(commitComment)
.where(commitComment.source.sourceFilePath.isNotNull()
.and(commitComment.commit.repository.eq(repositoryEntity)
.and(commitComment.commit.commitId.in(commitIds))))
- .list(commitComment);
+ .fetch();
}
/**
@@ -77,11 +79,11 @@ public List getInlineCommentsFor(RepositoryEntity repositoryEntit
*/
@Transactional
public Map commentsFor(RepositoryEntity repositoryEntity, Collection commitIds) {
- return query().from(commitComment)
+ return query().selectFrom(commitComment)
.where(commitComment.commit.repository.eq(repositoryEntity)
- .and(commitComment.commit.commitId.in(commitIds)))
- .groupBy(commitComment.commit.commitId)
- .map(commitComment.commit.commitId, commitComment.commentId.count());
+ .and(commitComment.commit.commitId.in(commitIds))
+ ).groupBy(commitComment.commit.commitId)
+ .transform(groupBy(commitComment.commit.commitId).as( commitComment.commentId.count()));
}
/**
@@ -92,11 +94,11 @@ public Map commentsFor(RepositoryEntity repositoryEntity, Collecti
*/
@Transactional
public Stream getMostRecentCommitComments(List extends RepositoryEntity> repositoryEntities, long limit) {
- return toStream(query().from(commitComment)
+ return toStream(query().selectFrom(commitComment)
.where(commitComment.commit.repository.in(repositoryEntities))
.orderBy(commitComment.timestamp.desc())
.limit(limit)
- .iterate(commitComment));
+ .iterate());
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Commits.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Commits.java
index 0f7590a8..66cfc1ed 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Commits.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Commits.java
@@ -96,10 +96,10 @@ protected CommitModel retrieveCommit(RepositoryEntity repositoryEntity, String c
*/
@Transactional
public boolean exists(RepositoryEntity repository, String commitId) {
- return query().from(commit)
+ return query().selectFrom(commit)
.where(commit.repository.eq(repository))
.where(commit.commitId.eq(commitId))
- .exists();
+ .fetchCount() > 0;
}
/**
@@ -110,10 +110,10 @@ public boolean exists(RepositoryEntity repository, String commitId) {
*/
@Transactional
public Stream getMostRecentCommits(List extends RepositoryEntity> repositoryEntities, long limit) {
- return toStream(query().from(commit)
+ return toStream(query().selectFrom(commit)
.where(commit.repository.in(repositoryEntities))
.orderBy(commit.pushTime.desc())
.limit(limit)
- .iterate(commit));
+ .iterate());
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Controller.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Controller.java
index 2c333f8b..4550faae 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Controller.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Controller.java
@@ -1,11 +1,11 @@
package nl.tudelft.ewi.devhub.server.database.controllers;
import com.mysema.commons.lang.CloseableIterator;
+import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.extern.slf4j.Slf4j;
import com.google.common.base.Preconditions;
import com.google.inject.persist.Transactional;
-import com.mysema.query.jpa.impl.JPAQuery;
import org.hibernate.Hibernate;
import org.hibernate.engine.spi.SessionImplementor;
@@ -57,8 +57,8 @@ public T delete(T entity) {
return entity;
}
- public JPAQuery query() {
- return new JPAQuery(entityManager);
+ public JPAQueryFactory query() {
+ return new JPAQueryFactory(entityManager);
}
protected T ensureNotNull(T entry, String error) {
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CourseEditions.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CourseEditions.java
index bd423ce3..a0b3f50a 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CourseEditions.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/CourseEditions.java
@@ -1,5 +1,9 @@
package nl.tudelft.ewi.devhub.server.database.controllers;
+import com.querydsl.core.types.OrderSpecifier;
+import com.querydsl.jpa.JPAExpressions;
+import com.querydsl.jpa.JPQLQuery;
+import com.querydsl.jpa.impl.JPAQuery;
import nl.tudelft.ewi.devhub.server.database.entities.Course;
import nl.tudelft.ewi.devhub.server.database.entities.CourseEdition;
import nl.tudelft.ewi.devhub.server.database.entities.User;
@@ -7,10 +11,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.inject.persist.Transactional;
-import com.mysema.query.jpa.JPASubQuery;
-import com.mysema.query.jpa.impl.JPAQuery;
-import com.mysema.query.types.OrderSpecifier;
-import com.mysema.query.types.query.ListSubQuery;
import javax.inject.Inject;
import javax.persistence.EntityManager;
@@ -30,9 +30,9 @@ public CourseEditions(EntityManager entityManager) {
@Transactional
public CourseEdition find(long id) {
- return ensureNotNull(query().from(courseEdition)
+ return ensureNotNull(query().selectFrom(courseEdition)
.where(courseEdition.id.eq(id))
- .singleResult(courseEdition), "Could not find course with id: " + id);
+ .fetchOne(), "Could not find course with id: " + id);
}
@Transactional
@@ -40,17 +40,18 @@ public CourseEdition find(String courseCode, String period) {
Preconditions.checkNotNull(courseCode);
Preconditions.checkNotNull(period);
- return ensureNotNull(query().from(courseEdition)
+ return ensureNotNull(query().selectFrom(courseEdition)
.where(courseEdition.code.equalsIgnoreCase(period)
.and(courseEdition.course.code.equalsIgnoreCase(courseCode)))
- .singleResult(courseEdition), "Could not find course with code: " + courseCode);
+ .fetchOne(), "Could not find course with code: " + courseCode);
}
@Transactional
public List listParticipatingCourses(User user) {
return query().from(group)
.where(group.members.contains(user))
- .list(group.courseEdition);
+ .select(group.courseEdition)
+ .fetch();
}
/**
@@ -68,14 +69,14 @@ public Collection listAssistingCourses(User user) {
@Transactional
public List listAdministratingCourses(User user) {
if(user.isAdmin()) {
- return query().from(courseEdition).list(courseEdition);
+ return query().selectFrom(courseEdition).fetch();
}
- return ImmutableList. of();
+ return ImmutableList.of();
}
- private JPAQuery activeCoursesBaseQuery() {
+ private JPAQuery activeCoursesBaseQuery() {
Date now = new Date();
- return query().from(courseEdition)
+ return query().selectFrom(courseEdition)
.where(courseEdition.timeSpan.start.before(now)
.and(courseEdition.timeSpan.end.isNull()
.or(courseEdition.timeSpan.end.after(now))));
@@ -85,28 +86,28 @@ private JPAQuery activeCoursesBaseQuery() {
public List listActiveCourses() {
return activeCoursesBaseQuery()
.orderBy(courseOrdering())
- .list(courseEdition);
+ .fetch();
}
@Transactional
public CourseEdition getActiveCourseEdition(Course course) {
return ensureNotNull(activeCoursesBaseQuery()
.where(courseEdition.course.eq(course))
- .singleResult(courseEdition), "Could not find active course edition for " + course);
+ .fetchOne(), "Could not find active course edition for " + course);
}
@Transactional
public List listNotYetParticipatedCourses(User user) {
Preconditions.checkNotNull(user);
- ListSubQuery participatingCourses = new JPASubQuery().from(group)
- .where(group.members.contains(user))
- .list(group.courseEdition);
+ JPQLQuery participatingCourses = JPAExpressions.selectFrom(group)
+ .where(group.members.contains(user))
+ .select(group.courseEdition);
return activeCoursesBaseQuery()
.where(courseEdition.notIn(participatingCourses))
.orderBy(courseOrdering())
- .list(courseEdition);
+ .fetch();
}
private static OrderSpecifier>[] courseOrdering() {
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Courses.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Courses.java
index aa33f22c..f6cd1ca6 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Courses.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Courses.java
@@ -25,9 +25,9 @@ public Courses(EntityManager entityManager) {
@Transactional
public Course find(String courseCode) {
Preconditions.checkNotNull(courseCode);
- return ensureNotNull(query().from(course)
- .where(course.course.code.equalsIgnoreCase(courseCode))
- .singleResult(course), "Could not find course with code: " + courseCode);
+ return ensureNotNull(query().selectFrom(course)
+ .where(course.code.equalsIgnoreCase(courseCode))
+ .fetchOne(), "Could not find course with code: " + courseCode);
}
@Transactional
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Deliveries.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Deliveries.java
index f2b156fe..4c66b593 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Deliveries.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Deliveries.java
@@ -1,5 +1,7 @@
package nl.tudelft.ewi.devhub.server.database.controllers;
+import com.querydsl.core.group.GroupBy;
+import com.querydsl.core.types.QMap;
import nl.tudelft.ewi.devhub.server.database.entities.Assignment;
import nl.tudelft.ewi.devhub.server.database.entities.Delivery;
import nl.tudelft.ewi.devhub.server.database.entities.Group;
@@ -15,8 +17,9 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static com.mysema.query.group.GroupBy.groupBy;
-import static com.mysema.query.group.GroupBy.list;
+
+import static com.querydsl.core.group.GroupBy.groupBy;
+import static com.querydsl.core.group.GroupBy.list;
import static nl.tudelft.ewi.devhub.server.database.entities.Delivery.State;
import static nl.tudelft.ewi.devhub.server.database.entities.QDelivery.delivery;
@@ -38,11 +41,11 @@ public Deliveries(EntityManager em) {
*/
@Transactional
public Optional getLastDelivery(Assignment assignment, Group group) {
- return Optional.ofNullable(query().from(delivery)
+ return Optional.ofNullable(query().selectFrom(delivery)
.where(delivery.assignment.eq(assignment))
.where(delivery.group.eq(group))
.orderBy(delivery.timestamp.desc())
- .singleResult(delivery));
+ .fetchOne());
}
/**
@@ -54,11 +57,11 @@ public Optional getLastDelivery(Assignment assignment, Group group) {
*/
@Transactional
public boolean lastDeliveryIsApprovedOrDisapproved(Assignment assignment, Group group) {
- return query().from(delivery)
+ return query().selectFrom(delivery)
.where(delivery.assignment.eq(assignment)
.and(delivery.group.eq(group))
.and(delivery.review.state.in(State.APPROVED, State.DISAPPROVED)))
- .exists();
+ .fetchCount() > 0;
}
/**
@@ -69,11 +72,11 @@ public boolean lastDeliveryIsApprovedOrDisapproved(Assignment assignment, Group
*/
@Transactional
public List getDeliveries(Assignment assignment, Group group) {
- return query().from(delivery)
+ return query().selectFrom(delivery)
.where(delivery.assignment.eq(assignment)
.and(delivery.group.eq(group)))
.orderBy(delivery.timestamp.desc())
- .list(delivery);
+ .fetch();
}
/**
@@ -83,10 +86,11 @@ public List getDeliveries(Assignment assignment, Group group) {
*/
@Transactional
public List getLastDeliveries(Assignment assignment) {
- Map> deliveriesMap = query().from(delivery)
- .where(delivery.assignment.eq(assignment))
- .orderBy(delivery.timestamp.desc())
- .transform(groupBy(delivery.group).as(list(delivery)));
+ Map> deliveriesMap = query().selectFrom(delivery)
+ .where(delivery.assignment.eq(assignment))
+ .orderBy(delivery.timestamp.desc())
+ .transform(groupBy(delivery.group).as(list(delivery)));
+
Comparator byState = Comparator.comparing(Delivery::getState);
Comparator bySubmissionDate = Comparator. naturalOrder();
@@ -104,10 +108,10 @@ public List getLastDeliveries(Assignment assignment) {
*/
@Transactional
public Delivery find(Group group, long deliveryId) {
- return ensureNotNull(query().from(delivery)
+ return ensureNotNull(query().selectFrom(delivery)
.where(delivery.deliveryId.eq(deliveryId)
.and(delivery.group.eq(group)))
- .singleResult(delivery),
+ .fetchOne(),
"No delivery found for id " + deliveryId);
}
@@ -119,7 +123,7 @@ public Delivery find(Group group, long deliveryId) {
*/
@Transactional
public Stream getMostRecentDeliveries(List groups, long limit) {
- Map> deliveriesMap = query().from(delivery)
+ Map> deliveriesMap = query().selectFrom(delivery)
.where(delivery.group.in(groups))
.orderBy(delivery.timestamp.desc())
.limit(limit)
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Groups.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Groups.java
index 9ad80003..26aef070 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Groups.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Groups.java
@@ -25,9 +25,9 @@ public Groups(EntityManager entityManager) {
@Transactional
public Group findByRepoName(String repoName) {
Preconditions.checkNotNull(repoName);
- Group res = query().from(group)
+ Group res = query().selectFrom(group)
.where(group.repository.repositoryName.equalsIgnoreCase(repoName))
- .singleResult(group);
+ .fetchOne();
return ensureNotNull(res, "Could not find group by repository name: " + repoName);
}
@@ -35,28 +35,28 @@ public Group findByRepoName(String repoName) {
@Transactional
public List find(CourseEdition course) {
Preconditions.checkNotNull(course);
- return query().from(group)
+ return query().selectFrom(group)
.where(group.courseEdition.id.eq(course.getId()))
.orderBy(group.groupNumber.asc())
- .list(group);
+ .fetch();
}
@Transactional
public List listFor(User user) {
Preconditions.checkNotNull(user);
- return query().from(group)
+ return query().selectFrom(group)
.where(group.members.contains(user))
.orderBy(group.groupNumber.asc())
- .list(group);
+ .fetch();
}
@Transactional
public Group find(CourseEdition course, long groupNumber) {
Preconditions.checkNotNull(course);
- Group res = query().from(group)
+ Group res = query().selectFrom(group)
.where(group.courseEdition.id.eq(course.getId()))
.where(group.groupNumber.eq(groupNumber))
- .singleResult(group);
+ .fetchOne();
return ensureNotNull(res, "Could not find group by course: " + course + " and groupNumber: " + groupNumber);
}
@@ -66,10 +66,10 @@ public Group find(CourseEdition courseEdition, User user) {
Preconditions.checkNotNull(courseEdition);
Preconditions.checkNotNull(user);
- return ensureNotNull(query().from(group)
+ return ensureNotNull(query().selectFrom(group)
.where(group.members.contains(user)
.and(group.courseEdition.eq(courseEdition)))
- .singleResult(group),
+ .fetchOne(),
String.format("Could not find group by course %s and user %s", courseEdition, user));
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Issues.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Issues.java
index dd96dcb4..77e5f044 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Issues.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Issues.java
@@ -22,37 +22,37 @@ public Issues(EntityManager em) {
@Transactional
public List findAssignedIssues(final RepositoryEntity repo, User user){
- return query().from(issue)
+ return query().selectFrom(issue)
.where(issue.repository.eq(repo).and(issue.assignee.eq(user)))
- .list(issue);
+ .fetch();
}
@Transactional
public List findOpenIssues(final RepositoryEntity repo){
- return query().from(issue)
+ return query().selectFrom(issue)
.where(issue.repository.eq(repo).and(issue.open.isTrue()))
- .list(issue);
+ .fetch();
}
@Transactional
public List findClosedIssues(final RepositoryEntity repo){
- return query().from(issue)
+ return query().selectFrom(issue)
.where(issue.repository.eq(repo).and(issue.open.isFalse()))
- .list(issue);
+ .fetch();
}
@Transactional
public List findUnassignedIssues(final RepositoryEntity repo){
- return query().from(issue)
+ return query().selectFrom(issue)
.where(issue.repository.eq(repo).and(issue.assignee.isNull()))
- .list(issue);
+ .fetch();
}
@Transactional
public List findIssueById(final RepositoryEntity repo, final long id){
- return query().from(issue)
+ return query().selectFrom(issue)
.where(issue.repository.eq(repo).and(issue.issueId.eq(id)))
- .list(issue);
+ .fetch();
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PrivateRepositories.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PrivateRepositories.java
index 6f3767a6..af3b30c7 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PrivateRepositories.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PrivateRepositories.java
@@ -27,20 +27,20 @@ public PrivateRepository find(String username, String repositoryTitle) {
Preconditions.checkNotNull(username);
Preconditions.checkNotNull(repositoryTitle);
- return ensureNotNull(query().from(privateRepository)
+ return ensureNotNull(query().selectFrom(privateRepository)
.where(privateRepository.owner.netId.equalsIgnoreCase(username)
.and(privateRepository.title.equalsIgnoreCase(repositoryTitle)))
- .singleResult(privateRepository),
+ .fetchOne(),
"Could not find repository " + username + "/" + repositoryTitle);
}
@Transactional
public List findPrivateRepositories(User user) {
Preconditions.checkNotNull(user);
- return query().from(privateRepository)
+ return query().selectFrom(privateRepository)
.where(privateRepository.owner.eq(user)
.or(privateRepository.collaborators.contains(user)))
- .list(privateRepository);
+ .fetch();
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequestComments.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequestComments.java
index 2dbf3e58..f7910d34 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequestComments.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequestComments.java
@@ -30,11 +30,11 @@ public PullRequestComments(EntityManager entityManager) {
*/
@Transactional
public Stream getMostRecentPullRequestComments(List extends RepositoryEntity> repositoryEntities, long limit) {
- return toStream(query().from(pullRequestComment)
+ return toStream(query().selectFrom(pullRequestComment)
.where(pullRequestComment.pullRequest.repository.in(repositoryEntities))
.orderBy(pullRequestComment.timestamp.desc())
.limit(limit)
- .iterate(pullRequestComment));
+ .iterate());
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequests.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequests.java
index 81459bea..6aae60e1 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequests.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/PullRequests.java
@@ -31,10 +31,10 @@ public PullRequests(final EntityManager entityManager) {
*/
@Transactional
public PullRequest findById(final RepositoryEntity repositoryEntity, final long id) {
- return ensureNotNull(query().from(pullRequest)
+ return ensureNotNull(query().selectFrom(pullRequest)
.where(pullRequest.issueId.eq(id)
.and(pullRequest.repository.eq(repositoryEntity)))
- .singleResult(pullRequest), "No pull request exists for id " + id);
+ .fetchOne(), "No pull request exists for id " + id);
}
/**
@@ -45,11 +45,11 @@ public PullRequest findById(final RepositoryEntity repositoryEntity, final long
*/
@Transactional
public Optional findOpenPullRequest(final RepositoryEntity repositoryEntity, final String branchName) {
- return Optional.ofNullable(query().from(pullRequest)
+ return Optional.ofNullable(query().selectFrom(pullRequest)
.where(pullRequest.repository.eq(repositoryEntity))
.where(pullRequest.branchName.eq(branchName))
.where(pullRequest.open.isTrue())
- .singleResult(pullRequest));
+ .fetchOne());
}
/**
@@ -59,11 +59,11 @@ public Optional findOpenPullRequest(final RepositoryEntity reposito
*/
@Transactional
public List findOpenPullRequests(final RepositoryEntity repositoryEntity) {
- return query().from(pullRequest)
+ return query().selectFrom(pullRequest)
.where(pullRequest.repository.eq(repositoryEntity))
.where(pullRequest.open.isTrue())
.orderBy(pullRequest.issueId.desc())
- .list(pullRequest);
+ .fetch();
}
/**
@@ -73,11 +73,11 @@ public List findOpenPullRequests(final RepositoryEntity repositoryE
*/
@Transactional
public List findClosedPullRequests(final RepositoryEntity repositoryEntity) {
- return query().from(pullRequest)
+ return query().selectFrom(pullRequest)
.where(pullRequest.repository.eq(repositoryEntity))
.where(pullRequest.open.isFalse())
.orderBy(pullRequest.issueId.desc())
- .list(pullRequest);
+ .fetch();
}
/**
@@ -88,11 +88,11 @@ public List findClosedPullRequests(final RepositoryEntity repositor
*/
@Transactional
public boolean openPullRequestExists(final RepositoryEntity repositoryEntity, final String branchName) {
- return query().from(pullRequest)
+ return query().selectFrom(pullRequest)
.where(pullRequest.repository.eq(repositoryEntity))
.where(pullRequest.branchName.eq(branchName))
.where(pullRequest.open.isTrue())
- .exists();
+ .fetchCount() > 0;
}
/**
@@ -103,11 +103,11 @@ public boolean openPullRequestExists(final RepositoryEntity repositoryEntity, fi
*/
@Transactional
public Stream findLastPullRequests(final List extends RepositoryEntity> repositoryEntities, long limit) {
- return toStream(query().from(pullRequest)
+ return toStream(query().selectFrom(pullRequest)
.where(pullRequest.repository.in(repositoryEntities))
.orderBy(pullRequest.timestamp.desc())
.limit(limit)
- .iterate(pullRequest));
+ .iterate());
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/RepositoriesController.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/RepositoriesController.java
index d714d512..00efe616 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/RepositoriesController.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/RepositoriesController.java
@@ -21,9 +21,9 @@ public RepositoriesController(EntityManager entityManager) {
@Transactional
public RepositoryEntity find(final String repositoryName) {
- return ensureNotNull(query().from(repositoryEntity)
+ return ensureNotNull(query().selectFrom(repositoryEntity)
.where(repositoryEntity.repositoryName.equalsIgnoreCase(repositoryName))
- .singleResult(repositoryEntity), String.format("No repository found for %s", repositoryName));
+ .fetchOne(), String.format("No repository found for %s", repositoryName));
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Users.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Users.java
index 66ec72bb..8c6388e3 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Users.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Users.java
@@ -14,6 +14,9 @@
import java.util.Set;
import java.util.stream.Collectors;
+
+import static com.querydsl.core.group.GroupBy.groupBy;
+
public class Users extends Controller {
@Inject
@@ -23,9 +26,9 @@ public Users(EntityManager entityManager) {
@Transactional
public User find(long id) {
- User user = query().from(QUser.user)
+ User user = query().selectFrom(QUser.user)
.where(QUser.user.id.eq(id))
- .singleResult(QUser.user);
+ .fetchOne();
return ensureNotNull(user, "Could not find user with id: " + id);
}
@@ -34,9 +37,9 @@ public User find(long id) {
public User findByNetId(String netId) {
Preconditions.checkNotNull(netId);
- User user = query().from(QUser.user)
+ User user = query().selectFrom(QUser.user)
.where(QUser.user.netId.equalsIgnoreCase(netId))
- .singleResult(QUser.user);
+ .fetchOne();
return ensureNotNull(user, "Could not find user with netID:" + netId);
}
@@ -45,17 +48,17 @@ public User findByNetId(String netId) {
public List listAllWithNetIdPrefix(String prefix) {
Preconditions.checkNotNull(prefix);
- return query().from(QUser.user)
+ return query().selectFrom(QUser.user)
.where(QUser.user.netId.startsWithIgnoreCase(prefix))
.orderBy(QUser.user.netId.toLowerCase().asc())
- .list(QUser.user);
+ .fetch();
}
@Transactional
public List listAdministrators() {
- return query().from(QUser.user)
+ return query().selectFrom(QUser.user)
.where(QUser.user.admin.isTrue())
- .list(QUser.user);
+ .fetch();
}
@Transactional
@@ -70,10 +73,10 @@ public Map mapByNetIds(Set netIds) {
.map(String::toLowerCase)
.collect(Collectors.toList());
- return query().from(QUser.user)
+ return query().selectFrom(QUser.user)
.where(QUser.user.netId.toLowerCase().in(lowerCasedNetIds))
.orderBy(QUser.user.netId.toLowerCase().asc())
- .map(QUser.user.netId, QUser.user);
+ .transform(groupBy(QUser.user.netId).as(QUser.user));
}
}
diff --git a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Warnings.java b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Warnings.java
index 77a32681..199e8cb5 100644
--- a/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Warnings.java
+++ b/src/main/java/nl/tudelft/ewi/devhub/server/database/controllers/Warnings.java
@@ -1,5 +1,7 @@
package nl.tudelft.ewi.devhub.server.database.controllers;
+import com.querydsl.jpa.JPAExpressions;
+import com.querydsl.jpa.JPQLQuery;
import nl.tudelft.ewi.devhub.server.database.entities.Commit;
import nl.tudelft.ewi.devhub.server.database.entities.Group;
import nl.tudelft.ewi.devhub.server.database.entities.RepositoryEntity;
@@ -11,8 +13,6 @@
import com.google.common.collect.ImmutableList;
import com.google.inject.Inject;
import com.google.inject.persist.Transactional;
-import com.mysema.query.jpa.JPASubQuery;
-import com.mysema.query.types.query.ListSubQuery;
import javax.persistence.EntityManager;
import java.util.Collection;
@@ -20,6 +20,8 @@
import java.util.Map;
import java.util.Set;
+
+import static com.querydsl.core.group.GroupBy.groupBy;
import static java.util.stream.Collectors.toSet;
import static nl.tudelft.ewi.devhub.server.database.entities.warnings.QCommitWarning.commitWarning;
import static nl.tudelft.ewi.devhub.server.database.entities.warnings.QLineWarning.lineWarning;
@@ -42,20 +44,19 @@ public Warnings(EntityManager entityManager) {
*/
@Transactional
public Map commitsWithWarningsFor(RepositoryEntity repositoryEntity, Collection commitIds) {
- return query().from(commitWarning)
+ return query().selectFrom(commitWarning)
.where(commitWarning.repository.eq(repositoryEntity)
.and(commitWarning.commit.commitId.in(commitIds))
- .and(commitWarning.notIn(getLineWarningsNotIntroducedInCommit(repositoryEntity, commitIds))))
- .groupBy(commitWarning.commit.commitId)
- .map(commitWarning.commit.commitId, commitWarning.id.count());
+ .and(commitWarning.notIn(getLineWarningsNotIntroducedInCommit(repositoryEntity, commitIds)))
+ ).groupBy(commitWarning.commit.commitId)
+ .transform(groupBy(commitWarning.commit.commitId).as(commitWarning.id.count()));
}
- protected ListSubQuery getLineWarningsNotIntroducedInCommit(final RepositoryEntity repositoryEntity, final Collection commitIds) {
- return new JPASubQuery().from(lineWarning)
+ protected JPQLQuery getLineWarningsNotIntroducedInCommit(final RepositoryEntity repositoryEntity, final Collection commitIds) {
+ return JPAExpressions.selectFrom(lineWarning)
.where(lineWarning.repository.eq(repositoryEntity)
.and(lineWarning.commit.commitId.in(commitIds)
- .and(lineWarning.source.sourceCommit.commitId.ne(lineWarning.commit.commitId))))
- .list(lineWarning);
+ .and(lineWarning.source.sourceCommit.commitId.ne(lineWarning.commit.commitId))));
}
/**
@@ -82,18 +83,17 @@ public List getWarningsFor(final RepositoryEntity repositoryEntit
*/
@Transactional
public List getWarningsFor(final RepositoryEntity repositoryEntity, final Collection commitIds) {
- return query().from(commitWarning)
+ return query().selectFrom(commitWarning)
.where(commitWarning.repository.eq(repositoryEntity)
.and(commitWarning.commit.commitId.in(commitIds))
.and(commitWarning.notIn(getLineWarningsForQuery(repositoryEntity, commitIds))))
- .list(commitWarning);
+ .fetch();
}
- protected ListSubQuery getLineWarningsForQuery(final RepositoryEntity repositoryEntity, final Collection commitIds) {
- return new JPASubQuery().from(lineWarning)
+ protected JPQLQuery getLineWarningsForQuery(final RepositoryEntity repositoryEntity, final Collection commitIds) {
+ return JPAExpressions.selectFrom(lineWarning)
.where(lineWarning.repository.eq(repositoryEntity)
- .and(lineWarning.commit.commitId.in(commitIds)))
- .list(lineWarning);
+ .and(lineWarning.commit.commitId.in(commitIds)));
}
/**
@@ -105,10 +105,10 @@ protected ListSubQuery getLineWarningsForQuery(final RepositoryEnti
*/
@Transactional
public List getLineWarningsFor(final RepositoryEntity repositoryEntity, final String commitId) {
- return query().from(lineWarning)
+ return query().selectFrom(lineWarning)
.where(lineWarning.repository.eq(repositoryEntity)
.and(lineWarning.commit.commitId.eq(commitId)))
- .list(lineWarning);
+ .fetch();
}
@@ -120,10 +120,10 @@ public List getLineWarningsFor(final RepositoryEntity repositoryEnt
*/
@Transactional
protected List getAllCommitWarningsFor(final RepositoryEntity repositoryEntity, final Set commits) {
- return query().from(commitWarning)
+ return query().selectFrom(commitWarning)
.where(commitWarning.repository.eq(repositoryEntity)
.and(commitWarning.commit.in(commits)))
- .list(commitWarning);
+ .fetch();
}
/**