Skip to content

Commit bcec7c6

Browse files
committed
sample FastRepository
1 parent 56e6307 commit bcec7c6

File tree

5 files changed

+12
-38
lines changed

5 files changed

+12
-38
lines changed

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/query/FastRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
public interface FastRepository<T,ID> extends JpaRepository<T,ID>, JpaSpecificationExecutor<T> {
1212

1313
default Page<T> findAll(PageRequest request){
14-
Class<T> clazz = getDomainClass();
1514
if(request.hasFilter()){
15+
Class<T> clazz = getDomainClass();
1616
return findAll(request.getExample(clazz),request);
1717
}
1818
return findAll((org.springframework.data.domain.PageRequest)request);

springboot-starter-data-fast/src/test/java/com/codingapi/springboot/fast/DemoRepositoryTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.codingapi.springboot.fast.entity.Demo;
44
import com.codingapi.springboot.fast.repository.DemoRepository;
55
import com.codingapi.springboot.framework.dto.request.PageRequest;
6-
import com.codingapi.springboot.framework.dto.request.QueryFilter;
76
import org.junit.jupiter.api.Test;
87
import org.springframework.beans.factory.annotation.Autowired;
98
import org.springframework.boot.test.context.SpringBootTest;
@@ -44,7 +43,7 @@ void query(){
4443
PageRequest request = new PageRequest();
4544
request.setCurrent(1);
4645
request.setPageSize(10);
47-
request.addFilter(QueryFilter.of("name","123"));
46+
request.addFilter("name","123");
4847

4948
Page<Demo> page = demoRepository.findAll(request);
5049
assertEquals(1, page.getTotalElements());

springboot-starter/src/main/java/com/codingapi/springboot/framework/dto/request/PageRequest.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@
77
import org.springframework.data.domain.Sort;
88

99
import java.beans.PropertyDescriptor;
10+
import java.util.HashMap;
11+
import java.util.Map;
1012
import java.util.Optional;
1113

1214
public class PageRequest extends org.springframework.data.domain.PageRequest {
1315

1416
@Getter
1517
private int current;
1618
private int pageSize;
17-
private QueryFilter filter;
19+
private final Map<String,Object> filters = new HashMap<>();
1820

1921
private org.springframework.data.domain.PageRequest pageRequest;
2022

@@ -111,24 +113,25 @@ public void addSort(Sort sort) {
111113
}
112114
}
113115

114-
public void addFilter(QueryFilter filter){
115-
this.filter = filter;
116+
public PageRequest addFilter(String key,Object value){
117+
this.filters.put(key, value);
118+
return this;
116119
}
117120

118121
public boolean hasFilter(){
119-
return this.filter!=null;
122+
return !this.filters.isEmpty();
120123
}
121124

122125
public <T> Example<T> getExample(Class<T> clazz){
123-
if(this.filter ==null){
126+
if(!hasFilter()){
124127
return null;
125128
}
126129
try {
127130
Object entity = clazz.getDeclaredConstructor().newInstance();
128131
PropertyDescriptor[] descriptors = BeanUtils.getPropertyDescriptors(clazz);
129132
for (PropertyDescriptor descriptor : descriptors) {
130133
String name = descriptor.getName();
131-
Object value = filter.getValue(name);
134+
Object value = filters.get(name);
132135
if (value != null) {
133136
descriptor.getWriteMethod().invoke(entity,value);
134137
}

springboot-starter/src/main/java/com/codingapi/springboot/framework/dto/request/QueryFilter.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

springboot-starter/src/test/java/com/codingapi/springboot/framework/query/test/DemoRepositoryTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.codingapi.springboot.framework.query.test;
22

33
import com.codingapi.springboot.framework.dto.request.PageRequest;
4-
import com.codingapi.springboot.framework.dto.request.QueryFilter;
54
import com.codingapi.springboot.framework.query.entity.Demo;
65
import com.codingapi.springboot.framework.query.repository.DemoRepository;
76
import org.junit.jupiter.api.Test;
@@ -47,7 +46,7 @@ void query(){
4746
request.setCurrent(1);
4847
request.setPageSize(10);
4948

50-
request.addFilter(QueryFilter.of("name","123"));
49+
request.addFilter("name","123");
5150

5251
Example<Demo> demo = request.getExample(Demo.class);
5352
System.out.println(demo);

0 commit comments

Comments
 (0)