Skip to content

Commit 5662706

Browse files
author
talhadilber
committed
dto fields make protected
1 parent fe55376 commit 5662706

18 files changed

+70
-66
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
<groupId>io.github.tdilber</groupId>
1515
<artifactId>spring-jpa-dynamic-query</artifactId>
16-
<version>0.2.5</version>
16+
<version>0.3.0</version>
1717
<packaging>jar</packaging>
1818
<name>Spring Jpa Dynamic Query</name>
1919
<description>Spring Jpa Dynamic Query Project</description>

src/main/java/com/beyt/dto/Criteria.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33

44
import com.beyt.dto.enums.CriteriaType;
5+
import lombok.Getter;
6+
import lombok.Setter;
57

68
import java.io.Serializable;
79
import java.util.Arrays;
@@ -11,10 +13,12 @@
1113
/**
1214
* Created by tdilber at 24-Aug-19
1315
*/
16+
@Getter
17+
@Setter
1418
public class Criteria implements Serializable {
15-
public String key;
16-
public CriteriaType operation;
17-
public List<Object> values;
19+
protected String key;
20+
protected CriteriaType operation;
21+
protected List<Object> values;
1822

1923
public static Criteria of(String key, CriteriaType operation, Collection<Object> values) {
2024
return new Criteria(key, operation, values);

src/main/java/com/beyt/dto/DynamicQuery.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
@Slf4j
1414
public class DynamicQuery {
1515

16-
private boolean distinct = false;
17-
private Integer pageSize = null;
18-
private Integer pageNumber = null;
19-
private List<Pair<String, String>> select = new ArrayList<>();
20-
private List<Criteria> where = new CriteriaList();
21-
private List<Pair<String, Order>> orderBy = new ArrayList<>();
16+
protected boolean distinct = false;
17+
protected Integer pageSize = null;
18+
protected Integer pageNumber = null;
19+
protected List<Pair<String, String>> select = new ArrayList<>();
20+
protected List<Criteria> where = new CriteriaList();
21+
protected List<Pair<String, Order>> orderBy = new ArrayList<>();
2222

2323
public boolean isDistinct() {
2424
return distinct;

src/main/java/com/beyt/query/DynamicQueryManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ protected static <Entity> Class<Entity> getEntityClass(JpaSpecificationExecutor<
334334
List<Criteria> result = new ArrayList<>();
335335

336336
for (Criteria criteria : searchCriteriaList) {
337-
if (map.containsKey(criteria.operation)) {
337+
if (map.containsKey(criteria.getOperation())) {
338338
result.add(criteria);
339339
}
340340
}

src/main/java/com/beyt/query/DynamicSpecification.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,18 @@ public Predicate toPredicate(Root<Entity> root, CriteriaQuery<?> query, Criteria
3939
List<Predicate> predicateAndList = new ArrayList<>();
4040
List<Predicate> predicateOrList = new ArrayList<>();
4141
for (int i = 0; i < criteriaList.size(); i++) {
42-
if (criteriaList.get(i).operation == CriteriaType.PARENTHES) {
42+
if (criteriaList.get(i).getOperation() == CriteriaType.PARENTHES) {
4343
SpecificationUtil.checkHasFirstValue(criteriaList.get(i));
4444
try {
45-
predicateAndList.add(new DynamicSpecification<Entity>(((List<Criteria>) (criteriaList.get(i).values.get(0))), joinMap).toPredicate(root, query, builder));
45+
predicateAndList.add(new DynamicSpecification<Entity>(((List<Criteria>) (criteriaList.get(i).getValues().get(0))), joinMap).toPredicate(root, query, builder));
4646
} catch (Exception e) {
4747
throw new DynamicQueryNoAvailableParenthesesOperationUsageException(
48-
"There is No Available Paranthes Operation Usage in Criteria Key: " + criteriaList.get(i).key);
48+
"There is No Available Paranthes Operation Usage in Criteria Key: " + criteriaList.get(i).getKey());
4949
}
50-
} else if (criteriaList.get(i).operation == CriteriaType.OR) {
50+
} else if (criteriaList.get(i).getOperation() == CriteriaType.OR) {
5151
if (i == 0 || i + 1 == criteriaList.size()) {
5252
throw new DynamicQueryNoAvailableOrOperationUsageException(
53-
"There is No Available OR Operation Usage in Criteria Key: " + criteriaList.get(i).key);
53+
"There is No Available OR Operation Usage in Criteria Key: " + criteriaList.get(i).getKey());
5454
}
5555

5656
predicateOrList.add(builder.and(predicateAndList.toArray(new Predicate[0])));
@@ -66,8 +66,8 @@ public Predicate toPredicate(Root<Entity> root, CriteriaQuery<?> query, Criteria
6666
}
6767

6868
private Predicate getPredicate(Root<Entity> root, CriteriaBuilder builder, Criteria criteria) {
69-
From<?, ?> localFrom = createLocalFrom(root, criteria.key);
70-
return addPredicate(localFrom, builder, new Criteria(getFieldName(criteria.key), criteria.operation, criteria.values.toArray(new Object[0])));
69+
From<?, ?> localFrom = createLocalFrom(root, criteria.getKey());
70+
return addPredicate(localFrom, builder, new Criteria(getFieldName(criteria.getKey()), criteria.getOperation(), criteria.getValues().toArray(new Object[0])));
7171
}
7272

7373
public From<?, ?> createLocalFrom(Root<?> root, String key) {
@@ -117,22 +117,22 @@ public static String getFieldName(String key) {
117117
}
118118

119119
protected Predicate addPredicate(Path<?> root, CriteriaBuilder builder, Criteria criteria) {
120-
if (!criteria.operation.equals(CriteriaType.SPECIFIED)) {
120+
if (!criteria.getOperation().equals(CriteriaType.SPECIFIED)) {
121121
try {
122-
criteria.values = deserialize(root.get(criteria.key).getJavaType(), criteria.values);
122+
criteria.setValues(deserialize(root.get(criteria.getKey()).getJavaType(), criteria.getValues()));
123123
} catch (Exception e) {
124124
throw new DynamicQueryNoAvailableEnumException("There is a "
125-
+ root.get(criteria.key).getJavaType().getSimpleName() + " Enum Problem in Criteria Key: "
126-
+ criteria.key, e);
125+
+ root.get(criteria.getKey()).getJavaType().getSimpleName() + " Enum Problem in Criteria Key: "
126+
+ criteria.getKey(), e);
127127
}
128128
}
129129

130-
if (DynamicQueryManager.specificationRuleMap.containsKey(criteria.operation)) {
130+
if (DynamicQueryManager.specificationRuleMap.containsKey(criteria.getOperation())) {
131131
return DynamicQueryManager.specificationRuleMap
132-
.get(criteria.operation).generatePredicate(root, builder, criteria);
132+
.get(criteria.getOperation()).generatePredicate(root, builder, criteria);
133133
} else {
134134
throw new DynamicQueryNoAvailableOperationException("There is No Available Operation in Criteria Key: "
135-
+ criteria.key);
135+
+ criteria.getKey());
136136
}
137137
}
138138

src/main/java/com/beyt/query/rule/specification/SpecificationFilterDoesNotContainRule.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ public class SpecificationFilterDoesNotContainRule implements ISpecificationFilt
1818
@Override
1919
public Predicate generatePredicate(Path<?> root, CriteriaBuilder builder, Criteria criteria) {
2020
SpecificationUtil.checkHasFirstValue(criteria);
21-
Predicate[] predicates = new Predicate[criteria.values.size()];
22-
for (int i = 0; i < criteria.values.size(); i++) {
23-
if (root.get(criteria.key).getJavaType() == String.class) {
24-
predicates[i] = builder.notLike(root.<String>get(criteria.key), "%" + criteria.values.get(i) + "%");
21+
Predicate[] predicates = new Predicate[criteria.getValues().size()];
22+
for (int i = 0; i < criteria.getValues().size(); i++) {
23+
if (root.get(criteria.getKey()).getJavaType() == String.class) {
24+
predicates[i] = builder.notLike(root.<String>get(criteria.getKey()), "%" + criteria.getValues().get(i) + "%");
2525
} else {
26-
throw new DynamicQueryNoAvailableValueException("Need String Type: " + criteria.key);
26+
throw new DynamicQueryNoAvailableValueException("Need String Type: " + criteria.getKey());
2727
}
2828
}
2929

src/main/java/com/beyt/query/rule/specification/SpecificationFilterDoubleLikeRule.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ public class SpecificationFilterDoubleLikeRule implements ISpecificationFilterRu
1818
@Override
1919
public Predicate generatePredicate(Path<?> root, CriteriaBuilder builder, Criteria criteria) {
2020
SpecificationUtil.checkHasFirstValue(criteria);
21-
Predicate[] predicates = new Predicate[criteria.values.size()];
22-
for (int i = 0; i < criteria.values.size(); i++) {
23-
if (root.get(criteria.key).getJavaType() == String.class) {
24-
predicates[i] = builder.like(root.<String>get(criteria.key), "%" + criteria.values.get(i) + "%");
21+
Predicate[] predicates = new Predicate[criteria.getValues().size()];
22+
for (int i = 0; i < criteria.getValues().size(); i++) {
23+
if (root.get(criteria.getKey()).getJavaType() == String.class) {
24+
predicates[i] = builder.like(root.<String>get(criteria.getKey()), "%" + criteria.getValues().get(i) + "%");
2525
} else {
26-
throw new DynamicQueryNoAvailableValueException("Need String Type: " + criteria.key);
26+
throw new DynamicQueryNoAvailableValueException("Need String Type: " + criteria.getKey());
2727
}
2828
}
2929

src/main/java/com/beyt/query/rule/specification/SpecificationFilterEqualRule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ public class SpecificationFilterEqualRule implements ISpecificationFilterRule {
1717
@Override
1818
public Predicate generatePredicate(Path<?> root, CriteriaBuilder builder, Criteria criteria) {
1919
SpecificationUtil.checkHasFirstValue(criteria);
20-
Predicate[] predicates = new Predicate[criteria.values.size()];
21-
for (int i = 0; i < criteria.values.size(); i++) {
22-
predicates[i] = builder.equal(root.get(criteria.key), criteria.values.get(i));
20+
Predicate[] predicates = new Predicate[criteria.getValues().size()];
21+
for (int i = 0; i < criteria.getValues().size(); i++) {
22+
predicates[i] = builder.equal(root.get(criteria.getKey()), criteria.getValues().get(i));
2323
}
2424

2525
return builder.or(predicates);

src/main/java/com/beyt/query/rule/specification/SpecificationFilterGreaterThanOrEqualToRule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class SpecificationFilterGreaterThanOrEqualToRule implements ISpecificati
1717
public Predicate generatePredicate(Path<?> root, CriteriaBuilder builder, Criteria criteria) {
1818
Predicate predicate;
1919
SpecificationUtil.checkHasFirstValue(criteria);
20-
predicate = builder.greaterThanOrEqualTo(root.<Comparable>get(criteria.key), (Comparable) criteria.values.get(0));
20+
predicate = builder.greaterThanOrEqualTo(root.<Comparable>get(criteria.getKey()), (Comparable) criteria.getValues().get(0));
2121

2222
return predicate;
2323
}

src/main/java/com/beyt/query/rule/specification/SpecificationFilterGreaterThanRule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class SpecificationFilterGreaterThanRule implements ISpecificationFilterR
1717
public Predicate generatePredicate(Path<?> root, CriteriaBuilder builder, Criteria criteria) {
1818
Predicate predicate;
1919
SpecificationUtil.checkHasFirstValue(criteria);
20-
predicate = builder.greaterThan(root.<Comparable>get(criteria.key), (Comparable) criteria.values.get(0));
20+
predicate = builder.greaterThan(root.<Comparable>get(criteria.getKey()), (Comparable) criteria.getValues().get(0));
2121

2222
return predicate;
2323
}

0 commit comments

Comments
 (0)