11package com .codingapi .springboot .fast .jpa ;
22
3- import com .codingapi .springboot .fast .jpa .map .MapViewResult ;
4- import com .codingapi .springboot .fast .jpa .map .QueryColumns ;
53import com .codingapi .springboot .fast .jpa .map .QueryColumnsContext ;
4+ import com .codingapi .springboot .fast .jpa .map .QueryColumns ;
5+ import com .codingapi .springboot .fast .jpa .map .MapViewResult ;
66import lombok .AllArgsConstructor ;
77import org .springframework .data .domain .Page ;
88import org .springframework .data .domain .PageImpl ;
@@ -17,12 +17,12 @@ public class JPAQuery {
1717
1818 private final EntityManager entityManager ;
1919
20- public List <? > listQuery (SQLBuilder builder ) {
20+ public < T > List <T > listQuery (SQLBuilder < T > builder ) {
2121 return listQuery (builder .getClazz (),builder .getSQL (),builder .getParams ());
2222 }
2323
24- public List <? > listQuery (Class <? > clazz , String sql , Object ... params ) {
25- TypedQuery <? > query = entityManager .createQuery (sql , clazz );
24+ public < T > List <T > listQuery (Class <T > clazz , String sql , Object ... params ) {
25+ TypedQuery <T > query = entityManager .createQuery (sql , clazz );
2626 if (params != null ) {
2727 for (int i = 0 ; i < params .length ; i ++) {
2828 query .setParameter (i + 1 , params [i ]);
@@ -31,25 +31,25 @@ public List<?> listQuery(Class<?> clazz, String sql, Object... params) {
3131 return query .getResultList ();
3232 }
3333
34- public Page <? > pageQuery (SQLBuilder builder ,PageRequest pageRequest ) {
34+ public < T > Page <T > pageQuery (SQLBuilder < T > builder ,PageRequest pageRequest ) {
3535 return pageQuery (builder .getClazz (), builder .getSQL (), builder .getCountSQL (),pageRequest ,builder .getParams ());
3636 }
3737
3838
39- public Page <? > pageQuery (Class <? > clazz , String sql , PageRequest pageRequest , Object ... params ) {
40- return pageQuery (clazz ,sql ,"select count (1) " + sql ,pageRequest ,params );
39+ public < T > Page <T > pageQuery (Class <T > clazz , String sql , PageRequest pageRequest , Object ... params ) {
40+ return pageQuery (clazz ,sql ,"SELECT COUNT (1) " + sql ,pageRequest ,params );
4141 }
4242
43- public Page <? > pageQuery (Class <? > clazz , String sql , String countSql , PageRequest pageRequest , Object ... params ) {
44- TypedQuery <? > query = entityManager .createQuery (sql , clazz );
43+ public < T > Page <T > pageQuery (Class <T > clazz , String sql , String countSql , PageRequest pageRequest , Object ... params ) {
44+ TypedQuery <T > query = entityManager .createQuery (sql , clazz );
4545 if (params != null ) {
4646 for (int i = 0 ; i < params .length ; i ++) {
4747 query .setParameter (i + 1 , params [i ]);
4848 }
4949 }
5050 query .setFirstResult (pageRequest .getPageNumber () * pageRequest .getPageSize ());
5151 query .setMaxResults (pageRequest .getPageSize ());
52- return new PageImpl <>(query .getResultList (), pageRequest , countQuery (countSql , params ));
52+ return new PageImpl <T >(query .getResultList (), pageRequest , countQuery (countSql , params ));
5353 }
5454
5555
@@ -64,18 +64,17 @@ private long countQuery(String sql, Object... params) {
6464 }
6565
6666 public Page <MapViewResult > pageMapQuery (QueryColumns columns , String sql , String countSql , PageRequest pageRequest , Object ... params ) {
67- String querySql = "select new com.codingapi.springboot.fast.jpa.map.MapViewResult('" +columns .getKey ()+"'," + String .join ("," , columns .getColumnSql ()) + ") " + sql ;
68- String countQuerySql = "select count (1) " + countSql ;
69- Page <MapViewResult > result = ( Page < MapViewResult >) pageQuery (MapViewResult .class ,querySql ,countQuerySql ,pageRequest ,params );
67+ String querySql = "SELECT new com.codingapi.springboot.fast.jpa.map.MapViewResult('" +columns .getKey ()+"'," + String .join ("," , columns .getColumnSql ()) + ") " + sql ;
68+ String countQuerySql = "SELECT COUNT (1) " + countSql ;
69+ Page <MapViewResult > result = pageQuery (MapViewResult .class ,querySql ,countQuerySql ,pageRequest ,params );
7070 QueryColumnsContext .getInstance ().clearCache (columns .getKey ());
7171 return result ;
7272 }
7373
74- public List <? > listMapQuery (QueryColumns columns , String sql , Object ... params ) {
75- String querySql = "select new com.codingapi.springboot.fast.jpa.map.MapViewResult('" +columns .getKey ()+"'," + String .join ("," , columns .getColumnSql ()) + ") " + sql ;
76- List <? > result = listQuery (MapViewResult .class ,querySql ,params );
74+ public List <MapViewResult > listMapQuery (QueryColumns columns , String sql , Object ... params ) {
75+ String querySql = "SELECT new com.codingapi.springboot.fast.jpa.map.MapViewResult('" +columns .getKey ()+"'," + String .join ("," , columns .getColumnSql ()) + ") " + sql ;
76+ List <MapViewResult > result = listQuery (MapViewResult .class ,querySql ,params );
7777 QueryColumnsContext .getInstance ().clearCache (columns .getKey ());
7878 return result ;
7979 }
80-
8180}
0 commit comments