Skip to content

Commit 4b5506a

Browse files
committed
šŸ› multiple messages couldn't be fetched: missing comparable - invalid "SQL WHERE IN"
1 parent fa00717 commit 4b5506a

2 files changed

Lines changed: 22 additions & 34 deletions

File tree

ā€Žsormas-api/src/main/java/de/symeda/sormas/api/externalmessage/survey/ExternalMessageSurveyResponseRequest.javaā€Ž

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* Mandatory fields that require
2020
* Will be present for {@link ExternalMessageType#SURVEY_RESPONSE}.
2121
*/
22-
public class ExternalMessageSurveyResponseRequest implements Serializable {
22+
public class ExternalMessageSurveyResponseRequest implements Serializable, Comparable<ExternalMessageSurveyResponseRequest> {
2323

2424
private static final long serialVersionUID = 1L;
2525

@@ -243,4 +243,19 @@ public String toString() {
243243
+ origin + '\'' + ", inputLanguages=" + inputLanguages + ", allowFallbackValues=" + allowFallbackValues + ", skipIfAlreadyProcessed="
244244
+ skipIfAlreadyProcessed + '}';
245245
}
246+
247+
@Override
248+
public int compareTo(ExternalMessageSurveyResponseRequest o) {
249+
250+
if (this.responseReceivedDate == null && o.responseReceivedDate == null) {
251+
return 0;
252+
}
253+
if (this.responseReceivedDate == null) {
254+
return -1;
255+
}
256+
if (o.responseReceivedDate == null) {
257+
return 1;
258+
}
259+
return this.responseReceivedDate.compareTo(o.responseReceivedDate);
260+
}
246261
}

ā€Žsormas-backend/src/main/java/de/symeda/sormas/backend/survey/SurveyFacadeEjb.javaā€Ž

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@
1919

2020
import java.io.ByteArrayInputStream;
2121
import java.io.IOException;
22-
import java.util.ArrayList;
23-
import java.util.Collections;
24-
import java.util.Date;
25-
import java.util.List;
26-
import java.util.Properties;
22+
import java.util.*;
2723
import java.util.concurrent.atomic.AtomicBoolean;
2824
import java.util.stream.Collectors;
2925
import java.util.stream.Stream;
@@ -35,54 +31,31 @@
3531
import javax.persistence.EntityManager;
3632
import javax.persistence.PersistenceContext;
3733
import javax.persistence.Tuple;
38-
import javax.persistence.criteria.CriteriaBuilder;
39-
import javax.persistence.criteria.CriteriaQuery;
40-
import javax.persistence.criteria.Order;
41-
import javax.persistence.criteria.Path;
42-
import javax.persistence.criteria.Predicate;
43-
import javax.persistence.criteria.Root;
44-
import javax.persistence.criteria.Selection;
34+
import javax.persistence.criteria.*;
4535
import javax.validation.Valid;
4636
import javax.validation.constraints.NotNull;
4737

4838
import de.symeda.sormas.api.Disease;
4939
import de.symeda.sormas.api.ReferenceDto;
5040
import de.symeda.sormas.api.caze.CaseDataDto;
51-
import de.symeda.sormas.api.docgeneneration.DocumentTemplateCriteria;
52-
import de.symeda.sormas.api.docgeneneration.DocumentTemplateDto;
53-
import de.symeda.sormas.api.docgeneneration.DocumentTemplateEntities;
54-
import de.symeda.sormas.api.docgeneneration.DocumentTemplateException;
55-
import de.symeda.sormas.api.docgeneneration.DocumentVariables;
56-
import de.symeda.sormas.api.docgeneneration.DocumentWorkflow;
57-
import de.symeda.sormas.api.docgeneneration.RootEntityType;
41+
import de.symeda.sormas.api.docgeneneration.*;
5842
import de.symeda.sormas.api.document.DocumentDto;
5943
import de.symeda.sormas.api.externalemail.AttachmentException;
6044
import de.symeda.sormas.api.externalemail.ExternalEmailException;
6145
import de.symeda.sormas.api.externalemail.ExternalEmailOptionsDto;
6246
import de.symeda.sormas.api.i18n.I18nProperties;
6347
import de.symeda.sormas.api.i18n.Strings;
6448
import de.symeda.sormas.api.i18n.Validations;
65-
import de.symeda.sormas.api.survey.SurveyCriteria;
66-
import de.symeda.sormas.api.survey.SurveyDocumentOptionsDto;
67-
import de.symeda.sormas.api.survey.SurveyDto;
68-
import de.symeda.sormas.api.survey.SurveyFacade;
69-
import de.symeda.sormas.api.survey.SurveyIndexDto;
70-
import de.symeda.sormas.api.survey.SurveyReferenceDto;
49+
import de.symeda.sormas.api.survey.*;
7150
import de.symeda.sormas.api.user.UserRight;
7251
import de.symeda.sormas.api.utils.SortProperty;
7352
import de.symeda.sormas.api.utils.ValidationException;
7453
import de.symeda.sormas.api.utils.ValidationRuntimeException;
7554
import de.symeda.sormas.backend.FacadeHelper;
7655
import de.symeda.sormas.backend.caze.CaseService;
7756
import de.symeda.sormas.backend.common.CriteriaBuilderHelper;
78-
import de.symeda.sormas.backend.docgeneration.DocGenerationHelper;
79-
import de.symeda.sormas.backend.docgeneration.DocumentTemplate;
80-
import de.symeda.sormas.backend.docgeneration.DocumentTemplateEntitiesBuilder;
81-
import de.symeda.sormas.backend.docgeneration.DocumentTemplateFacadeEjb;
57+
import de.symeda.sormas.backend.docgeneration.*;
8258
import de.symeda.sormas.backend.docgeneration.DocumentTemplateFacadeEjb.DocumentTemplateFacadeEjbLocal;
83-
import de.symeda.sormas.backend.docgeneration.DocumentTemplateService;
84-
import de.symeda.sormas.backend.docgeneration.RootEntities;
85-
import de.symeda.sormas.backend.docgeneration.TemplateEngine;
8659
import de.symeda.sormas.backend.document.DocumentService;
8760
import de.symeda.sormas.backend.externalemail.ExternalEmailFacadeEjb.ExternalEmailFacadeEjbLocal;
8861
import de.symeda.sormas.backend.user.UserService;
@@ -241,7 +214,7 @@ public List<SurveyDto> getByExternalIds(List<String> externalIds) {
241214
CriteriaBuilder cb = em.getCriteriaBuilder();
242215
CriteriaQuery<Survey> cq = cb.createQuery(Survey.class);
243216
Root<Survey> from = cq.from(Survey.class);
244-
cq.where(cb.equal(from.get(Survey.EXTERNAL_ID), externalIds));
217+
cq.where(from.get(Survey.EXTERNAL_ID).in(externalIds));
245218
cq.orderBy(cb.desc(from.get(Survey.NAME)));
246219

247220
return getAsStream(cq).map(this::toDto).collect(Collectors.toList());

0 commit comments

Comments
Ā (0)