Skip to content

Commit fd80c7c

Browse files
author
talhadilber
committed
| Spring Boot 3 | Upgrade Complete
1 parent 2c919d1 commit fd80c7c

31 files changed

+92
-81
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,5 @@ Desktop.ini
146146
.eslintcache
147147

148148
*/target/**
149+
150+
/nexts/

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,16 @@ You can find the sample code from: https://github.com/tdilber/spring-jpa-dynamic
9494

9595
### 1- Setting up the project with Maven
9696

97+
**for Spring Boot 3.*:**
98+
```maven
99+
<dependency>
100+
<groupId>io.github.tdilber</groupId>
101+
<artifactId>spring-boot-starter-jpa-dynamic-query</artifactId>
102+
<version>0.1.0</version>
103+
</dependency>
104+
```
105+
106+
**for Spring Boot 2.*:**
97107
```maven
98108
<dependency>
99109
<groupId>io.github.tdilber</groupId>

pom.xml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
<modelVersion>4.0.0</modelVersion>
66

77
<parent>
8-
<artifactId>spring-boot-starter-parent</artifactId>
98
<groupId>org.springframework.boot</groupId>
10-
<version>2.7.18</version>
9+
<artifactId>spring-boot-starter-parent</artifactId>
10+
<version>3.3.3</version>
1111
<relativePath/>
1212
</parent>
1313

1414
<groupId>io.github.tdilber</groupId>
15-
<artifactId>spring-jpa-dynamic-query</artifactId>
16-
<version>0.4.0</version>
15+
<artifactId>spring-boot-starter-jpa-dynamic-query</artifactId>
16+
<version>0.1.0</version>
1717
<packaging>jar</packaging>
1818
<name>Spring Jpa Dynamic Query</name>
1919
<description>Spring Jpa Dynamic Query (JDQ) Project</description>
@@ -77,6 +77,7 @@
7777
<dependency>
7878
<groupId>org.hibernate</groupId>
7979
<artifactId>hibernate-core</artifactId>
80+
<version>${hibernate.version}</version>
8081
</dependency>
8182
<dependency>
8283
<groupId>org.projectlombok</groupId>
@@ -117,7 +118,6 @@
117118
<dependency>
118119
<groupId>com.google.code.gson</groupId>
119120
<artifactId>gson</artifactId>
120-
<version>2.10.1</version>
121121
<scope>test</scope>
122122
</dependency>
123123
</dependencies>
@@ -138,7 +138,7 @@
138138
<plugin>
139139
<groupId>org.apache.maven.plugins</groupId>
140140
<artifactId>maven-source-plugin</artifactId>
141-
<version>3.2.1</version>
141+
<version>${maven-source-plugin.version}</version>
142142
<executions>
143143
<execution>
144144
<id>attach-sources</id>
@@ -151,7 +151,7 @@
151151
<plugin>
152152
<groupId>org.apache.maven.plugins</groupId>
153153
<artifactId>maven-javadoc-plugin</artifactId>
154-
<version>2.9.1</version>
154+
<version>${maven-javadoc-plugin.version}</version>
155155
<executions>
156156
<execution>
157157
<id>attach-javadocs</id>

src/main/java/com/beyt/jdq/config/EntityManagerProviderConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.springframework.context.annotation.Bean;
66
import org.springframework.context.annotation.Configuration;
77

8-
import javax.persistence.EntityManager;
8+
import jakarta.persistence.EntityManager;
99

1010
@Configuration
1111
public class EntityManagerProviderConfig {

src/main/java/com/beyt/jdq/dto/enums/JoinType.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
* Created by tdilber at 7/13/2020
77
*/
88
public enum JoinType implements Serializable {
9-
INNER('.', javax.persistence.criteria.JoinType.INNER),
10-
LEFT('<', javax.persistence.criteria.JoinType.LEFT),
11-
RIGHT('>', javax.persistence.criteria.JoinType.RIGHT);
9+
INNER('.', jakarta.persistence.criteria.JoinType.INNER),
10+
LEFT('<', jakarta.persistence.criteria.JoinType.LEFT),
11+
RIGHT('>', jakarta.persistence.criteria.JoinType.RIGHT);
1212

1313
private Character separator;
14-
private javax.persistence.criteria.JoinType joinType;
14+
private jakarta.persistence.criteria.JoinType joinType;
1515

16-
JoinType(Character separator, javax.persistence.criteria.JoinType joinType) {
16+
JoinType(Character separator, jakarta.persistence.criteria.JoinType joinType) {
1717
this.separator = separator;
1818
this.joinType = joinType;
1919
}
@@ -22,7 +22,7 @@ public Character getSeparator() {
2222
return separator;
2323
}
2424

25-
public javax.persistence.criteria.JoinType getJoinType() {
25+
public jakarta.persistence.criteria.JoinType getJoinType() {
2626
return joinType;
2727
}
2828
}

src/main/java/com/beyt/jdq/provider/IEntityManagerProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.beyt.jdq.provider;
22

3-
import javax.persistence.EntityManager;
3+
import jakarta.persistence.EntityManager;
44

55
public interface IEntityManagerProvider {
66
EntityManager provide();

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,26 @@
1111
import com.beyt.jdq.util.ApplicationContextUtil;
1212
import lombok.extern.slf4j.Slf4j;
1313
import org.apache.commons.collections4.IterableUtils;
14-
import org.hibernate.metamodel.model.domain.internal.SingularAttributeImpl;
15-
import org.hibernate.query.criteria.internal.path.RootImpl;
16-
import org.hibernate.query.criteria.internal.path.SingularAttributePath;
14+
import org.hibernate.query.criteria.JpaRoot;
15+
import org.hibernate.query.sqm.tree.domain.AbstractSqmPath;
1716
import org.springframework.core.GenericTypeResolver;
1817
import org.springframework.data.domain.Page;
1918
import org.springframework.data.domain.PageImpl;
2019
import org.springframework.data.domain.PageRequest;
2120
import org.springframework.data.domain.Pageable;
2221
import org.springframework.data.jpa.domain.Specification;
2322
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
24-
import org.springframework.data.repository.support.PageableExecutionUtils;
23+
import org.springframework.data.support.PageableExecutionUtils;
2524
import org.springframework.data.util.Pair;
2625
import org.springframework.lang.Nullable;
2726
import org.springframework.util.Assert;
2827
import org.springframework.util.CollectionUtils;
2928

30-
import javax.persistence.EntityManager;
31-
import javax.persistence.Tuple;
32-
import javax.persistence.TypedQuery;
33-
import javax.persistence.criteria.*;
29+
import jakarta.persistence.metamodel.Attribute;
30+
import jakarta.persistence.EntityManager;
31+
import jakarta.persistence.Tuple;
32+
import jakarta.persistence.TypedQuery;
33+
import jakarta.persistence.criteria.*;
3434
import java.lang.reflect.Field;
3535
import java.lang.reflect.Method;
3636
import java.util.*;
@@ -156,8 +156,8 @@ protected static <Entity, ResultType> Iterable<ResultType> getEntityListBySelect
156156
} else {
157157

158158
if (!IterableUtils.isEmpty(entityListBySelectableFilter)) {
159-
List<Pair<String, String>> parameters = entityListBySelectableFilter.iterator().next().getElements().stream().filter(e -> SingularAttributePath.class.isAssignableFrom(e.getClass()))
160-
.map(e -> Pair.of(((SingularAttributePath) e).getAttribute().getName(), Objects.isNull(e.getAlias()) ? ((SingularAttributePath) e).getAttribute().getName() : e.getAlias())).collect(Collectors.toList());
159+
List<Pair<String, String>> parameters = entityListBySelectableFilter.iterator().next().getElements().stream().filter(e -> AbstractSqmPath.class.isAssignableFrom(e.getClass()))
160+
.map(e -> Pair.of(((AbstractSqmPath) e).getModel().getPathName(), Objects.isNull(e.getAlias()) ? ((AbstractSqmPath) e).getModel().getPathName() : e.getAlias())).collect(Collectors.toList());
161161
return convertResultToResultTypeList(parameters, resultTypeClass, entityListBySelectableFilter, isPage);
162162
} else {
163163
return new ArrayList<>();
@@ -204,8 +204,8 @@ protected static <Entity, ResultType> Iterable<ResultType> getEntityListWithRetu
204204
query.multiselect(selectionList);
205205
} else if (!resultTypeClass.equals(entityClass)) {
206206
List<Selection<?>> selectionList = new ArrayList<>();
207-
Set<SingularAttributeImpl> declaredAttributes = ((RootImpl) root).getModel().getDeclaredAttributes();
208-
for (SingularAttributeImpl declaredAttribute : declaredAttributes) {
207+
Set<Attribute> declaredAttributes = ((JpaRoot) root).getModel().getDeclaredAttributes();
208+
for (Attribute declaredAttribute : declaredAttributes) {
209209
selectionList.add(root.get(declaredAttribute.getName()));
210210
}
211211
query.multiselect(selectionList);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.springframework.data.jpa.domain.Specification;
1212
import org.springframework.data.util.Pair;
1313

14-
import javax.persistence.criteria.*;
14+
import jakarta.persistence.criteria.*;
1515
import java.util.*;
1616
import java.util.concurrent.ConcurrentHashMap;
1717

src/main/java/com/beyt/jdq/query/rule/specification/ISpecificationFilterRule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
import com.beyt.jdq.dto.Criteria;
55

6-
import javax.persistence.criteria.CriteriaBuilder;
7-
import javax.persistence.criteria.Path;
8-
import javax.persistence.criteria.Predicate;
6+
import jakarta.persistence.criteria.CriteriaBuilder;
7+
import jakarta.persistence.criteria.Path;
8+
import jakarta.persistence.criteria.Predicate;
99

1010
/**
1111
* Created by tdilber at 25-Aug-19

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import com.beyt.jdq.util.SpecificationUtil;
66
import lombok.extern.slf4j.Slf4j;
77

8-
import javax.persistence.criteria.CriteriaBuilder;
9-
import javax.persistence.criteria.Path;
10-
import javax.persistence.criteria.Predicate;
8+
import jakarta.persistence.criteria.CriteriaBuilder;
9+
import jakarta.persistence.criteria.Path;
10+
import jakarta.persistence.criteria.Predicate;
1111

1212
/**
1313
* Created by tdilber at 25-Aug-19

0 commit comments

Comments
 (0)