Skip to content

Commit 9c45f00

Browse files
committed
add FastMapping verify #16
1 parent 078ddeb commit 9c45f00

File tree

17 files changed

+125
-103
lines changed

17 files changed

+125
-103
lines changed

springboot-example/src/main/java/com/codingapi/springboot/example/application/executor/DemoExecutor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@
1111
public class DemoExecutor {
1212

1313
private final DemoRepository demoRepository;
14+
1415
public void swap(Demo demo1, Demo demo2) {
15-
DemoChangeService demoChangeService = new DemoChangeService(demo1,demo2);
16+
DemoChangeService demoChangeService = new DemoChangeService(demo1, demo2);
1617
demoChangeService.swap();
1718
}
1819

19-
public void create(String name){
20+
public void create(String name) {
2021
Demo demo = new Demo(name);
2122
demoRepository.save(demo);
2223
}

springboot-example/src/main/java/com/codingapi/springboot/example/infrastructure/jap/repository/DemoEntityRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.codingapi.springboot.example.infrastructure.entity.DemoEntity;
44
import org.springframework.data.jpa.repository.JpaRepository;
55

6-
public interface DemoEntityRepository extends JpaRepository<DemoEntity,Integer> {
6+
public interface DemoEntityRepository extends JpaRepository<DemoEntity, Integer> {
77

88

99
}

springboot-example/src/main/java/com/codingapi/springboot/example/infrastructure/repository/impl/DemoRepositoryImpl.java

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

1010
@Repository
1111
@AllArgsConstructor
12-
public class DemoRepositoryImpl implements DemoRepository {
12+
public class DemoRepositoryImpl implements DemoRepository {
1313

1414
private final DemoEntityRepository demoEntityRepository;
1515

springboot-example/src/main/java/com/codingapi/springboot/example/ui/controller/OpenController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ public class OpenController {
2222
private final DemoEntityRepository demoEntityRepository;
2323

2424
@GetMapping("/save")
25-
public Response save(@RequestParam("name") String name){
25+
public Response save(@RequestParam("name") String name) {
2626
executor.create(name);
2727
return Response.buildSuccess();
2828
}
2929

3030
@GetMapping("/findAll")
31-
public MultiResponse<DemoEntity> findAll(PageRequest pageRequest){
31+
public MultiResponse<DemoEntity> findAll(PageRequest pageRequest) {
3232
return MultiResponse.of(demoEntityRepository.findAll(pageRequest));
3333
}
3434
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ public class DataFastConfiguration {
1919

2020
@Bean
2121
@ConditionalOnMissingBean
22-
public MvcEndpointMapping mvcEndpointMapping(RequestMappingHandlerMapping handlerMapping){
22+
public MvcEndpointMapping mvcEndpointMapping(RequestMappingHandlerMapping handlerMapping) {
2323
return new MvcEndpointMapping(handlerMapping);
2424
}
2525

2626
@Bean(initMethod = "registerMvcMapping")
2727
@ConditionalOnMissingBean
28-
public MvcMappingRegistrar mappingRegistrar(MvcEndpointMapping mvcEndpointMapping,JpaExecutor jpaExecutor){
29-
return new MvcMappingRegistrar(mvcEndpointMapping,jpaExecutor);
28+
public MvcMappingRegistrar mappingRegistrar(MvcEndpointMapping mvcEndpointMapping, JpaExecutor jpaExecutor) {
29+
return new MvcMappingRegistrar(mvcEndpointMapping, jpaExecutor);
3030
}
3131

3232
@Bean
3333
@ConditionalOnMissingBean
34-
public JpaExecutor jpaExecutor(EntityManager entityManager){
34+
public JpaExecutor jpaExecutor(EntityManager entityManager) {
3535
return new JpaExecutor(entityManager);
3636
}
3737

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/annotation/FastController.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,4 @@
88
public @interface FastController {
99

1010

11-
1211
}

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/annotation/FastMapping.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,11 @@
2727

2828
/**
2929
* mvc request method
30-
*
3130
*/
3231
RequestMethod method() default RequestMethod.GET;
3332

3433
/**
3534
* mvc request url
36-
*
3735
*/
3836
String mapping() default "";
3937

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/exception/FastMappingErrorException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.codingapi.springboot.fast.exception;
22

3-
public class FastMappingErrorException extends Exception{
3+
public class FastMappingErrorException extends Exception {
44

55
public FastMappingErrorException(String message) {
66
super(message);

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/executor/JpaExecutor.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,21 @@ public class JpaExecutor {
1313

1414
private final EntityManager entityManager;
1515

16-
public Object execute(String hql,String countHql,Object[] args,Class<?> returnType){
17-
JpaQuery query = new JpaQuery(hql,countHql,args,entityManager);
16+
public Object execute(String hql, String countHql, Object[] args, Class<?> returnType) {
17+
//only execute query sql
18+
JpaQuery query = new JpaQuery(hql, countHql, args, entityManager);
1819

19-
if(returnType.equals(SingleResponse.class)){
20+
if (returnType.equals(SingleResponse.class)) {
2021
return SingleResponse.of(query.getSingleResult());
2122
}
2223

23-
if(returnType.equals(MultiResponse.class)){
24-
Object returnData = query.getResultList();
25-
if(Page.class.isAssignableFrom(returnData.getClass())) {
26-
return MultiResponse.of((Page)returnData);
24+
if (returnType.equals(MultiResponse.class)) {
25+
Object returnData = query.getResultList();
26+
if (Page.class.isAssignableFrom(returnData.getClass())) {
27+
return MultiResponse.of((Page) returnData);
2728
}
2829

29-
if(Collection.class.isAssignableFrom(returnData.getClass())) {
30+
if (Collection.class.isAssignableFrom(returnData.getClass())) {
3031
return MultiResponse.of((Collection) returnData);
3132
}
3233
}

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/executor/JpaQuery.java

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,76 +22,91 @@ public class JpaQuery {
2222

2323
private final EntityManager entityManager;
2424

25-
public JpaQuery(String hql,String countHql,Object[] args, EntityManager entityManager) {
25+
public JpaQuery(String hql, String countHql, Object[] args, EntityManager entityManager) {
2626
this.hql = hql;
2727
this.countHql = countHql;
2828
this.args = args;
2929
this.entityManager = entityManager;
3030
this.query = entityManager.createQuery(hql);
31-
this.setParameter(query);
31+
this.initParameter(query);
3232
}
3333

34+
/**
35+
* init query parameter
36+
*/
3437
@SneakyThrows
35-
private void setParameter(Query query){
36-
if(args!=null&&args.length>0) {
38+
private void initParameter(Query query) {
39+
if (args != null && args.length > 0) {
3740
Set<Parameter<?>> parameters = query.getParameters();
38-
for(Parameter<?> parameter:parameters){
41+
for (Parameter<?> parameter : parameters) {
3942
Integer position = parameter.getPosition();
40-
if(position!=null){
43+
if (position != null) {
4144
query.setParameter(position, args[position - 1]);
4245
}
43-
if(StringUtils.hasText(parameter.getName())){
46+
if (StringUtils.hasText(parameter.getName())) {
4447
String name = parameter.getName();
4548
Object obj = args[0];
46-
Field field = ReflectionUtils.findField(obj.getClass(),name);
47-
if(field!=null) {
49+
Field field = ReflectionUtils.findField(obj.getClass(), name);
50+
if (field != null) {
4851
field.setAccessible(true);
4952
query.setParameter(name, field.get(obj));
5053
}
5154
}
5255
}
53-
5456
}
5557
}
5658

59+
/**
60+
* is Page Request
61+
*/
5762
private boolean isPageable() {
58-
if(args!=null&& args.length>0){
59-
Object lastObj = args[args.length-1];
63+
if (args != null && args.length > 0 && StringUtils.hasText(countHql)) {
64+
Object lastObj = args[args.length - 1];
6065
return lastObj instanceof Pageable;
6166
}
6267
return false;
6368
}
6469

65-
private Pageable getPageable(){
66-
if(args!=null&& args.length>0){
67-
Object lastObj = args[args.length-1];
68-
if(lastObj instanceof Pageable){
69-
return (Pageable) lastObj;
70-
}
70+
/**
71+
* get PageRequest
72+
*/
73+
private Pageable getPageable() {
74+
if (isPageable()) {
75+
Object lastObj = args[args.length - 1];
76+
return (Pageable) lastObj;
7177
}
7278
return null;
7379
}
7480

81+
/**
82+
* execute get list result data
83+
*/
7584
public Object getResultList() {
76-
if(isPageable()&&StringUtils.hasText(countHql)){
85+
if (isPageable()) {
7786
Pageable pageable = getPageable();
7887
query.setFirstResult((int) pageable.getOffset());
7988
query.setMaxResults(pageable.getPageSize());
8089
long total = getCount();
81-
return new PageImpl<>(query.getResultList(),pageable,total);
90+
return new PageImpl<>(query.getResultList(), pageable, total);
8291
}
8392
return query.getResultList();
8493
}
8594

8695

87-
private long getCount(){
96+
/**
97+
* get sql execute data count
98+
*/
99+
private long getCount() {
88100
Query countQuery = entityManager.createQuery(countHql);
89-
setParameter(countQuery);
101+
initParameter(countQuery);
90102
return (Long) countQuery.getSingleResult();
91103
}
92104

93105

94-
public Object getSingleResult(){
106+
/**
107+
* get single result data
108+
*/
109+
public Object getSingleResult() {
95110
return query.getSingleResult();
96111
}
97112

0 commit comments

Comments
 (0)