Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 92d2343

Browse files
Fixed SORMAS-Foundation#2764 by replacing null checks with blank checks
1 parent 573e733 commit 92d2343

1 file changed

Lines changed: 28 additions & 31 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/person/PersonService.java

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,6 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.backend.person;
1919

20-
import java.sql.Timestamp;
21-
import java.util.Collections;
22-
import java.util.Comparator;
23-
import java.util.Date;
24-
import java.util.HashSet;
25-
import java.util.List;
26-
import java.util.Set;
27-
import java.util.stream.Collectors;
28-
import java.util.stream.Stream;
29-
30-
import javax.ejb.EJB;
31-
import javax.ejb.LocalBean;
32-
import javax.ejb.Stateless;
33-
import javax.persistence.criteria.CriteriaBuilder;
34-
import javax.persistence.criteria.CriteriaQuery;
35-
import javax.persistence.criteria.Expression;
36-
import javax.persistence.criteria.From;
37-
import javax.persistence.criteria.Join;
38-
import javax.persistence.criteria.JoinType;
39-
import javax.persistence.criteria.Path;
40-
import javax.persistence.criteria.Predicate;
41-
import javax.persistence.criteria.Root;
42-
import javax.persistence.criteria.Subquery;
43-
4420
import de.symeda.sormas.api.Disease;
4521
import de.symeda.sormas.api.caze.CaseClassification;
4622
import de.symeda.sormas.api.person.PersonNameDto;
@@ -61,6 +37,30 @@
6137
import de.symeda.sormas.backend.location.Location;
6238
import de.symeda.sormas.backend.region.District;
6339
import de.symeda.sormas.backend.user.User;
40+
import org.apache.commons.lang3.StringUtils;
41+
42+
import javax.ejb.EJB;
43+
import javax.ejb.LocalBean;
44+
import javax.ejb.Stateless;
45+
import javax.persistence.criteria.CriteriaBuilder;
46+
import javax.persistence.criteria.CriteriaQuery;
47+
import javax.persistence.criteria.Expression;
48+
import javax.persistence.criteria.From;
49+
import javax.persistence.criteria.Join;
50+
import javax.persistence.criteria.JoinType;
51+
import javax.persistence.criteria.Path;
52+
import javax.persistence.criteria.Predicate;
53+
import javax.persistence.criteria.Root;
54+
import javax.persistence.criteria.Subquery;
55+
import java.sql.Timestamp;
56+
import java.util.Collections;
57+
import java.util.Comparator;
58+
import java.util.Date;
59+
import java.util.HashSet;
60+
import java.util.List;
61+
import java.util.Set;
62+
import java.util.stream.Collectors;
63+
import java.util.stream.Stream;
6464

6565
@Stateless
6666
@LocalBean
@@ -402,17 +402,14 @@ public Predicate buildSimilarityCriteriaFilter(PersonSimilarityCriteria criteria
402402

403403
Predicate filter = null;
404404

405-
if (criteria.getFirstName() != null && criteria.getLastName() != null) {
405+
if (!StringUtils.isBlank(criteria.getFirstName()) && !StringUtils.isBlank(criteria.getLastName())) {
406406
Expression<String> nameExpr = cb.concat(personFrom.get(Person.FIRST_NAME), " ");
407407
nameExpr = cb.concat(nameExpr, personFrom.get(Person.LAST_NAME));
408408

409409
String name = criteria.getFirstName() + " " + criteria.getLastName();
410410

411411
double nameSimilarityThreshold = configFacade.getNameSimilarityThreshold();
412-
filter = and(
413-
cb,
414-
filter,
415-
cb.gt(cb.function("similarity", double.class, nameExpr, cb.literal(name)), nameSimilarityThreshold));
412+
filter = and(cb, filter, cb.gt(cb.function("similarity", double.class, nameExpr, cb.literal(name)), nameSimilarityThreshold));
416413
}
417414

418415
if (criteria.getSex() != null) {
@@ -438,15 +435,15 @@ public Predicate buildSimilarityCriteriaFilter(PersonSimilarityCriteria criteria
438435
filter,
439436
cb.or(cb.isNull(personFrom.get(Person.BIRTHDATE_DD)), cb.equal(personFrom.get(Person.BIRTHDATE_DD), criteria.getBirthdateDD())));
440437
}
441-
if (criteria.getNationalHealthId() != null) {
438+
if (!StringUtils.isBlank(criteria.getNationalHealthId())) {
442439
filter = and(
443440
cb,
444441
filter,
445442
cb.or(
446443
cb.isNull(personFrom.get(Person.NATIONAL_HEALTH_ID)),
447444
cb.equal(personFrom.get(Person.NATIONAL_HEALTH_ID), criteria.getNationalHealthId())));
448445
}
449-
if (criteria.getPassportNumber() != null) {
446+
if (!StringUtils.isBlank(criteria.getPassportNumber())) {
450447
filter = or(cb, filter, cb.equal(personFrom.get(Person.PASSPORT_NUMBER), criteria.getPassportNumber()));
451448
}
452449

0 commit comments

Comments
 (0)