From a28e26e594b47b1b8ec6bc31ce36194e4d7c8d67 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Thu, 29 Apr 2021 11:58:03 +0300 Subject: [PATCH] Allow to query using exact reference --- .../java/eu/eudat/data/dao/criteria/FunderCriteria.java | 9 +++++++++ .../java/eu/eudat/data/dao/criteria/GrantCriteria.java | 9 +++++++++ .../java/eu/eudat/data/dao/criteria/ProjectCriteria.java | 9 +++++++++ .../eu/eudat/data/dao/criteria/ResearcherCriteria.java | 9 +++++++++ .../java/eu/eudat/data/dao/entities/FunderDaoImpl.java | 2 ++ .../java/eu/eudat/data/dao/entities/GrantDaoImpl.java | 2 ++ .../java/eu/eudat/data/dao/entities/ProjectDaoImpl.java | 2 ++ .../eu/eudat/data/dao/entities/ResearcherDaoImpl.java | 2 ++ 8 files changed, 44 insertions(+) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/FunderCriteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/FunderCriteria.java index c8c23038c..40f12491c 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/FunderCriteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/FunderCriteria.java @@ -4,6 +4,7 @@ import eu.eudat.data.entities.Funder; public class FunderCriteria extends Criteria { private String reference; + private String exactReference; public String getReference() { return reference; @@ -11,4 +12,12 @@ public class FunderCriteria extends Criteria { public void setReference(String reference) { this.reference = reference; } + + public String getExactReference() { + return exactReference; + } + + public void setExactReference(String exactReference) { + this.exactReference = exactReference; + } } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java index a216b2264..20a18d710 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java @@ -13,6 +13,7 @@ public class GrantCriteria extends Criteria { private boolean isPublic; private String funderId; private String funderReference; + private String exactReference; public Date getPeriodStart() { return periodStart; @@ -62,4 +63,12 @@ public class GrantCriteria extends Criteria { public void setFunderReference(String funderReference) { this.funderReference = funderReference; } + + public String getExactReference() { + return exactReference; + } + + public void setExactReference(String exactReference) { + this.exactReference = exactReference; + } } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java index 1450c8661..1ac0bbae5 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java @@ -4,6 +4,7 @@ import eu.eudat.data.entities.Project; public class ProjectCriteria extends Criteria { private String reference; + private String exactReference; public String getReference() { return reference; @@ -11,4 +12,12 @@ public class ProjectCriteria extends Criteria { public void setReference(String reference) { this.reference = reference; } + + public String getExactReference() { + return exactReference; + } + + public void setExactReference(String exactReference) { + this.exactReference = exactReference; + } } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ResearcherCriteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ResearcherCriteria.java index 83e822bae..c2184547a 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ResearcherCriteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ResearcherCriteria.java @@ -4,6 +4,7 @@ import eu.eudat.data.entities.Researcher; public class ResearcherCriteria extends Criteria { private String name; + private String reference; public String getName() { return name; @@ -12,4 +13,12 @@ public class ResearcherCriteria extends Criteria { public void setName(String name) { this.name = name; } + + public String getReference() { + return reference; + } + + public void setReference(String reference) { + this.reference = reference; + } } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/FunderDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/FunderDaoImpl.java index 40262d743..39d54385c 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/FunderDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/FunderDaoImpl.java @@ -29,6 +29,8 @@ public class FunderDaoImpl extends DatabaseAccess implements FunderDao { builder.or(builder.like(builder.upper(root.get("definition")), "%" + criteria.getLike().toUpperCase() + "%")))); if (criteria.getReference() != null) query.where((builder, root) -> builder.like(builder.upper(root.get("reference")), "%" + criteria.getReference().toUpperCase() + "%")); + if (criteria.getExactReference() != null) + query.where((builder, root) -> builder.like(builder.upper(root.get("reference")), criteria.getExactReference().toUpperCase())); query.where((builder, root) -> builder.notEqual(root.get("status"), Funder.Status.DELETED.getValue())); return query; } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java index 04e14d3b8..0bd5f28f5 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java @@ -39,6 +39,8 @@ public class GrantDaoImpl extends DatabaseAccess implements GrantDao { query.where((builder, root) -> builder.greaterThan(root.get("startdate"), criteria.getPeriodStart())); if (criteria.getReference() != null) query.where((builder, root) -> builder.like(root.get("reference"), "%" + criteria.getReference() + "%")); + if (criteria.getExactReference() != null) + query.where((builder, root) -> builder.like(root.get("reference"), criteria.getExactReference())); if (criteria.getGrantStateType() != null) { if (criteria.getGrantStateType().equals(GrantStateType.FINISHED.getValue())) query.where((builder, root) -> builder.lessThan(root.get("enddate"), new Date())); diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java index eac00713a..8b69f372a 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java @@ -28,6 +28,8 @@ public class ProjectDaoImpl extends DatabaseAccess implements ProjectDa builder.or(builder.like(builder.upper(root.get("description")), "%" + criteria.getLike().toUpperCase() + "%")))); if (criteria.getReference() != null) query.where((builder, root) -> builder.like(root.get("reference"), "%" + criteria.getReference() + "%")); + if (criteria.getExactReference() != null) + query.where((builder, root) -> builder.like(root.get("reference"), criteria.getExactReference())); query.where((builder, root) -> builder.notEqual(root.get("status"), Project.Status.DELETED.getValue())); return query; } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ResearcherDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ResearcherDaoImpl.java index 086adf820..ad7297163 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ResearcherDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ResearcherDaoImpl.java @@ -27,6 +27,8 @@ public class ResearcherDaoImpl extends DatabaseAccess implements Res query.where((builder, root) ->builder.or(builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"))); if (criteria.getName() != null && !criteria.getName().isEmpty()) query.where((builder, root) ->builder.or(builder.like(builder.upper(root.get("label")), "%" + criteria.getName().toUpperCase() + "%"))); + if (criteria.getReference() != null && !criteria.getReference().isEmpty()) + query.where((builder, root) ->builder.or(builder.like(builder.upper(root.get("reference")), criteria.getReference().toUpperCase()))); return query; }