提交 af09e29a 编写于 作者: M MaxKey

mybatis-jpa-extra-2.7

上级 df32b400
......@@ -73,7 +73,11 @@ public interface IJpaBaseMapper<T> {
@DeleteProvider(type = MapperSqlProvider.class, method = "remove")
public Integer remove(@Param ("entityClass")Class<?> entityClass,@Param ("id") String id);
@DeleteProvider(type = MapperSqlProvider.class, method = "batchDelete")
public Integer batchDelete(@Param ("entityClass")Class<?> entityClass,@Param ("idList") List<String> idList);
@DeleteProvider(type = MapperSqlProvider.class, method = "deleteBatch")
public Integer deleteBatch(@Param ("entityClass")Class<?> entityClass,@Param ("idList") List<String> idList);
@DeleteProvider(type = MapperSqlProvider.class, method = "logicDelete")
public Integer logicDelete(@Param ("entityClass")Class<?> entityClass,@Param ("idList") List<String> idList);
}
......@@ -22,7 +22,8 @@ import java.lang.reflect.Type;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.mybatis.jpa.PageResultsSqlCache;
import org.apache.mybatis.jpa.util.BeanUtil;
import org.apache.mybatis.jpa.util.InstanceUtil;
......@@ -41,7 +42,7 @@ import com.github.benmanes.caffeine.cache.Caffeine;
*/
public class JpaBaseService <T extends JpaBaseEntity> {
final static Logger _logger = Logger.getLogger(JpaBaseService.class);
final static Logger _logger = LoggerFactory.getLogger(JpaBaseService.class);
@JsonIgnore
//定义全局缓存
......@@ -76,7 +77,7 @@ public class JpaBaseService <T extends JpaBaseEntity> {
*/
@SuppressWarnings("unchecked")
public JpaBaseService(@SuppressWarnings("rawtypes") Class cls) {
_logger.trace("class : " + cls.getSimpleName());
_logger.trace("class : {}" , cls.getSimpleName());
mapperClass = cls.getSimpleName();
Type[] pType = ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments();
if (pType != null && pType.length >= 1) {
......@@ -85,7 +86,7 @@ public class JpaBaseService <T extends JpaBaseEntity> {
_logger.error("invalide initail, need generic type parameter! ");
throw new RuntimeException("invalide initail, need generic type parameter!");
}
_logger.trace("class : " + entityClass.getSimpleName());
_logger.trace("class : {}" , entityClass.getSimpleName());
}
/**
......@@ -93,10 +94,14 @@ public class JpaBaseService <T extends JpaBaseEntity> {
* @param mapperClass
*/
public JpaBaseService(String mapperClass) {
_logger.trace("class : " + mapperClass);
_logger.trace("class : {}" , mapperClass);
this.mapperClass = mapperClass;
}
public void setMapper(IJpaBaseMapper<T> mapper) {
this.mapper = mapper;
}
//get or set mapper
/**
* Load Mapper from spring container by mapperClass as bean id
......@@ -106,22 +111,18 @@ public class JpaBaseService <T extends JpaBaseEntity> {
public IJpaBaseMapper<T> getMapper() {
try {
if(mapper == null) {
String mapperClassBean=mapperClass.toLowerCase().charAt(0)+mapperClass.substring(1);
_logger.info("mapperClass Bean is " +mapperClassBean);
String mapperClassBean = mapperClass.toLowerCase().charAt(0) + mapperClass.substring(1);
_logger.info("mapperClass Bean is {}" , mapperClassBean);
mapper = (IJpaBaseMapper<T>) WebContext.getBean(mapperClassBean);
}
} catch(Exception e) {
_logger.error("getMapper Exception ",e);
_logger.error("getMapper Exception " , e);
} finally {
}
return mapper;
}
public void setMapper(IJpaBaseMapper<T> mapper) {
this.mapper = mapper;
}
//follow function for Query
/**
......@@ -134,15 +135,15 @@ public class JpaBaseService <T extends JpaBaseEntity> {
entity.setStartRow(calculateStartRow(entity.getPageNumber() ,entity.getPageSize()));
entity.setPageable(true);
List<T> resultslist=getMapper().queryPageResults(entity);
List<T> resultslist = getMapper().queryPageResults(entity);
entity.setPageable(false);
Integer totalPage=resultslist.size();
Integer totalPage = resultslist.size();
Integer totalCount = 0;
if(entity.getPageNumber()==1&&totalPage<entity.getPageSize()) {
if(entity.getPageNumber() == 1 && totalPage < entity.getPageSize()) {
totalCount=totalPage;
}else {
totalCount=parseCount(getMapper().queryPageResultsCount(entity));
totalCount = parseCount(getMapper().queryPageResultsCount(entity));
}
return new JpaPageResults<T>(entity.getPageNumber(),entity.getPageSize(),totalPage,totalCount,resultslist);
......@@ -150,7 +151,6 @@ public class JpaBaseService <T extends JpaBaseEntity> {
//follow function for Query
/**
* query page list entity by entity
* @param entity
......@@ -162,20 +162,20 @@ public class JpaBaseService <T extends JpaBaseEntity> {
entity.setStartRow(calculateStartRow(entity.getPageNumber() ,entity.getPageSize()));
entity.setPageable(true);
List<T> resultslist=null;
List<T> resultslist = null;
try {
resultslist = (List<T>)InstanceUtil.invokeMethod(getMapper(), mapperId, new Object[]{entity});
} catch (Exception e) {
_logger.error("queryPageResults Exception ",e);
_logger.error("queryPageResults Exception " , e);
}
entity.setPageable(false);
Integer totalPage=resultslist.size();
Integer totalPage = resultslist.size();
Integer totalCount = 0;
if(entity.getPageNumber()==1&&totalPage<entity.getPageSize()) {
totalCount=totalPage;
if(entity.getPageNumber() == 1 && totalPage < entity.getPageSize()) {
totalCount = totalPage;
}else {
totalCount=parseCount(getMapper().queryPageResultsCount(entity));
totalCount = parseCount(getMapper().queryPageResultsCount(entity));
}
return new JpaPageResults<T>(entity.getPageNumber(),entity.getPageSize(),totalPage,totalCount,resultslist);
......@@ -188,17 +188,17 @@ public class JpaBaseService <T extends JpaBaseEntity> {
*/
@SuppressWarnings("unchecked")
public Integer queryPageResultsCount(T entity) {
Integer count = 0;
try {
if(entity == null) {
entity = (T) entityClass.newInstance();
}
Integer count=getMapper().queryPageResultsCount(entity);
_logger.debug("queryCount count : "+count);
return count;
count = getMapper().queryPageResultsCount(entity);
_logger.debug("queryCount count : {}" , count);
} catch(Exception e) {
_logger.error("queryPageResultsCount Exception ",e);
_logger.error("queryPageResultsCount Exception " , e);
}
return null;
return count;
}
/**
......@@ -211,11 +211,10 @@ public class JpaBaseService <T extends JpaBaseEntity> {
try {
if(entity == null) {
entity = (T) entityClass.newInstance();
return getMapper().query(entity);
}
return getMapper().query(entity);
} catch(Exception e) {
_logger.error("query Exception ",e);
_logger.error("query Exception " , e);
}
return null;
}
......@@ -223,10 +222,9 @@ public class JpaBaseService <T extends JpaBaseEntity> {
public List<T> findAll() {
try {
return getMapper().findAll(this.entityClass);
} catch(Exception e) {
_logger.error("findAll Exception ",e);
_logger.error("findAll Exception " , e);
}
return null;
}
......@@ -238,10 +236,10 @@ public class JpaBaseService <T extends JpaBaseEntity> {
*/
public T load(T entity) {
try {
List<T> entityList=getMapper().query(entity);
return entityList!=null&&entityList.size()>0?entityList.get(0):null;
List<T> entityList = getMapper().query(entity);
return ((entityList != null) && ( entityList.size() > 0 ))?entityList.get(0) : null;
} catch(Exception e) {
_logger.error("load Exception ",e);
_logger.error("load Exception " , e);
}
return null;
}
......@@ -253,20 +251,20 @@ public class JpaBaseService <T extends JpaBaseEntity> {
*/
public T get(String id) {
try {
_logger.debug("entityClass "+entityClass.toGenericString()+" , primaryKey "+id);
_logger.debug("entityClass {} , primaryKey {}" , entityClass.toGenericString() , id);
return getMapper().get(this.entityClass,id);
} catch(Exception e) {
_logger.error("get Exception ",e);
_logger.error("get Exception " , e);
}
return null;
}
public T find(Class<T> entityClass,Object primaryKey) {
try {
_logger.debug("entityClass "+entityClass.toGenericString()+" , primaryKey "+primaryKey);
_logger.debug("entityClass {} , primaryKey {}" , entityClass.toGenericString() , primaryKey);
return getMapper().get(entityClass,primaryKey.toString());
} catch(Exception e) {
_logger.error("find Exception ",e);
_logger.error("find Exception " , e);
}
return null;
}
......@@ -279,18 +277,40 @@ public class JpaBaseService <T extends JpaBaseEntity> {
*/
public boolean insert(T entity) {
try {
Integer count=getMapper().insert(entity);
_logger.debug("insert count : "+count);
Integer count = getMapper().insert(entity);
_logger.debug("insert count : {}" , count);
return count > 0;
} catch(Exception e) {
_logger.error("insert Exception ",e);
_logger.error("insert Exception " , e);
}
return false;
}
/**
* insert entity with batch
* @param listEntity
* @return
*/
public boolean insertBatch(List<T> listEntity){
try {
if(BeanUtil.isNotNull(listEntity)) {
Integer count = 0;
for(T entity : listEntity) {
if(getMapper().insert(entity)>0) {
count ++;
}
}
_logger.debug("Insert Batch count : {}" , count);
return count > 0;
}
} catch(Exception e) {
_logger.error("Insert Batch Exception " , e);
}
return false;
}
/**
* JPA persist
* JPA persist , save
* @param entity
* @return boolean
*/
......@@ -299,13 +319,12 @@ public class JpaBaseService <T extends JpaBaseEntity> {
}
/**
* JPA merge
* JPA merge , save or update
* @param entity
* @return boolean
*/
public boolean merge(T entity) {
T loadedEntity = load(entity);
if(loadedEntity == null) {
return insert(entity);
}else {
......@@ -320,13 +339,11 @@ public class JpaBaseService <T extends JpaBaseEntity> {
*/
public boolean update(T entity) {
try {
Integer count=getMapper().update(entity);
_logger.debug("update count : "+count);
_logger.debug("update count : {}" , count);
return count > 0;
} catch(Exception e) {
_logger.error("update Exception ",e);
_logger.error("update Exception " , e);
}
return false;
}
......@@ -339,79 +356,80 @@ public class JpaBaseService <T extends JpaBaseEntity> {
public boolean delete(T entity) {
try {
Integer count=getMapper().delete(entity);
_logger.debug("delete count : "+count);
_logger.debug("delete count : {}" , count);
return count > 0;
} catch(Exception e) {
_logger.error("delete Exception ",e);
_logger.error("delete Exception " , e);
}
return false;
}
public boolean remove(String id){
/**
* batch delete entity by id List
* @param ids
* @return
*/
public boolean deleteBatch(List<String> idList) {
try {
Integer count=getMapper().remove(this.entityClass,id);
_logger.debug("remove count : "+count);
_logger.trace("deleteBatch {}" , idList);
Integer count = getMapper().deleteBatch(this.entityClass,idList);
_logger.debug("deleteBatch count : {}" , count);
return count > 0;
} catch(Exception e) {
_logger.error("remove Exception ",e);
_logger.error("deleteBatch Exception " , e);
}
return false;
}
/**
* batch insert entity
* @param listEntity
* batch delete entity by ids,split with ,
* @param ids
* @return
*/
public boolean batchInsert(List<T> listEntity){
public boolean deleteBatch(String ids) {
List<String> idList = StringUtils.string2List(ids, ",");
return deleteBatch(idList);
}
public boolean deleteBatch(String ids , String split) {
List<String> idList = StringUtils.string2List(ids, split);
return deleteBatch(idList);
}
public boolean remove(String id){
try {
if(BeanUtil.isNotNull(listEntity)) {
Integer count=0;
for(T entity : listEntity) {
if(getMapper().insert(entity)>0) {
count++;
}
}
_logger.debug("batchInsert count : "+count);
return count > 0;
}
Integer count=getMapper().remove(this.entityClass,id);
_logger.debug("remove count : {}" , count);
return count > 0;
} catch(Exception e) {
_logger.error("batchInsert Exception ",e);
_logger.error("remove Exception " , e);
}
return false;
}
/**
* batch delete entity by id List
* @param ids
* @return
*/
public boolean batchDelete(List<String> idList) {
public boolean logicDelete(List<String> idList) {
try {
Integer count=getMapper().batchDelete(this.entityClass,idList);
_logger.debug("batchDelete count : "+count);
_logger.trace("logicDelete {}" , idList);
Integer count = getMapper().logicDelete(this.entityClass,idList);
_logger.debug("logicDelete count : {}" , count);
return count > 0;
} catch(Exception e) {
_logger.error("batchDelete Exception ",e);
_logger.error("logicDelete Exception " , e);
}
return false;
return true;
}
/**
* batch delete entity by ids,split with ,
* @param ids
* @return
*/
public boolean batchDelete(String ids) {
public boolean logicDelete(String ids) {
List<String> idList = StringUtils.string2List(ids, ",");
return batchDelete(idList);
return logicDelete(idList);
}
public boolean logicDelete(String ids , String split) {
List<String> idList = StringUtils.string2List(ids, split);
return logicDelete(idList);
}
//follow is for query grid paging
/**
......@@ -424,7 +442,7 @@ public class JpaBaseService <T extends JpaBaseEntity> {
if(totalCount == null) {
return retTotalCount;
}else{
retTotalCount=Integer.parseInt(totalCount.toString());
retTotalCount = Integer.parseInt(totalCount.toString());
}
return retTotalCount;
}
......
......@@ -60,7 +60,7 @@ public class JpaPageResults <T>{
*/
public JpaPageResults(int currentPage,int pageResults,Long recordsCount) {
pageCount(currentPage,pageResults, recordsCount);
_logger.debug("Grid page : "+page+" , records : "+records+" , total : "+total);
_logger.debug("JpaPageResults : {} , records : {} , total : {}",page,records,total);
}
/**
* 构造函数
......
......@@ -48,6 +48,10 @@ public class MapperMetadata <T extends JpaBaseEntity>{
public static String GET_SQL = "_GET_SQL";
public static String FINDALL_SQL = "_FINDALL_SQL";
public static String REMOVE_SQL = "_REMOVE_SQL";
public static String BATCHDELETE_SQL = "_BATCHDELETE_SQL";
public static String LOGICDELETE_SQL = "_LOGICDELETE_SQL";
}
public static String ENTITY_CLASS = "entityClass";
......
......@@ -53,10 +53,14 @@ public class MapperSqlProvider <T extends JpaBaseEntity>{
return new SqlProviderDelete().execute(parametersMap);
}
public String batchDelete(Map<String, Object> parametersMap) {
public String deleteBatch(Map<String, Object> parametersMap) {
return new SqlProviderDelete().batchDelete(parametersMap);
}
public String logicDelete(Map<String, Object> parametersMap) {
return new SqlProviderDelete().logicDelete(parametersMap);
}
/**
* @param entity
* @return insert sql String
......
......@@ -45,13 +45,15 @@ public class SqlProviderDelete <T extends JpaBaseEntity>{
}
FieldColumnMapper idFieldColumnMapper=MapperMetadata.getIdColumn((entityClass).getSimpleName());
SQL sql=new SQL();
sql.DELETE_FROM(MapperMetadata.getTableName(entityClass));
sql.WHERE(idFieldColumnMapper.getColumnName()+" = #{"+idFieldColumnMapper.getFieldName()+",javaType=string,jdbcType=VARCHAR}");
sql.DELETE_FROM(MapperMetadata.getTableName(entityClass))
.WHERE(idFieldColumnMapper.getColumnName()
+ " = #{" +idFieldColumnMapper.getFieldName() + ",javaType=string,jdbcType=VARCHAR}");
String deleteSql=sql.toString();
_logger.trace("Delete SQL \n"+deleteSql);
MapperMetadata.sqlsMap.put(MapperMetadata.getTableName(entityClass) + MapperMetadata.SQL_TYPE.REMOVE_SQL,deleteSql);
return deleteSql;
}
@SuppressWarnings("unchecked")
public String batchDelete(Map<String, Object> parametersMap) {
Class<?> entityClass=(Class<?>)parametersMap.get(MapperMetadata.ENTITY_CLASS);
......@@ -68,11 +70,36 @@ public class SqlProviderDelete <T extends JpaBaseEntity>{
keyValue = keyValue.substring(1).replaceAll(";", "");
FieldColumnMapper idFieldColumnMapper=MapperMetadata.getIdColumn(entityClass.getSimpleName());
SQL sql=new SQL();
sql.DELETE_FROM(MapperMetadata.getTableName(entityClass));
sql.WHERE(idFieldColumnMapper.getColumnName()+" in ( "+keyValue+" )");
sql.DELETE_FROM(MapperMetadata.getTableName(entityClass))
.WHERE(idFieldColumnMapper.getColumnName()+" in ( "+keyValue+" )");
String deleteSql=sql.toString();
_logger.trace("Delete SQL \n"+deleteSql);
MapperMetadata.sqlsMap.put(MapperMetadata.getTableName(entityClass) + MapperMetadata.SQL_TYPE.REMOVE_SQL,deleteSql);
MapperMetadata.sqlsMap.put(MapperMetadata.getTableName(entityClass) + MapperMetadata.SQL_TYPE.BATCHDELETE_SQL,deleteSql);
return deleteSql;
}
@SuppressWarnings("unchecked")
public String logicDelete(Map<String, Object> parametersMap) {
Class<?> entityClass=(Class<?>)parametersMap.get(MapperMetadata.ENTITY_CLASS);
MapperMetadata.buildColumnList(entityClass);
ArrayList <String> idValues=(ArrayList<String>)parametersMap.get("idList");
String keyValue="";
for(String value : idValues) {
if(value.trim().length() > 0) {
keyValue += ",'" + value + "'";
_logger.trace("logic delete by id " + value);
}
}
//remove ;
keyValue = keyValue.substring(1).replaceAll(";", "");
FieldColumnMapper idFieldColumnMapper=MapperMetadata.getIdColumn(entityClass.getSimpleName());
SQL sql=new SQL();
sql.UPDATE(MapperMetadata.getTableName(entityClass))
.SET("status = 9")
.WHERE(idFieldColumnMapper.getColumnName()+" in ( "+keyValue+" )");
String deleteSql=sql.toString();
_logger.trace("logic Delete SQL \n"+deleteSql);
MapperMetadata.sqlsMap.put(MapperMetadata.getTableName(entityClass) + MapperMetadata.SQL_TYPE.LOGICDELETE_SQL,deleteSql);
return deleteSql;
}
......
......@@ -68,8 +68,11 @@ public class SqlProviderInsert <T extends JpaBaseEntity>{
)) {
GeneratedValue generatedValue=listFields.get(i).getGeneratedValue();
if(generatedValue.strategy()==GenerationType.AUTO) {
if(MapperMetadata.identifierGeneratorFactory.getGeneratorStrategyMap().containsKey(generatedValue.generator().toLowerCase())) {
BeanUtil.set(entity, fieldColumnMapper.getFieldName(), MapperMetadata.identifierGeneratorFactory.generate(generatedValue.generator().toLowerCase()));
if(MapperMetadata.identifierGeneratorFactory.getGeneratorStrategyMap()
.containsKey(generatedValue.generator().toLowerCase())) {
BeanUtil.set(entity,
fieldColumnMapper.getFieldName(),
MapperMetadata.identifierGeneratorFactory.generate(generatedValue.generator().toLowerCase()));
sql.VALUES(fieldColumnMapper.getColumnName(),"#{" + fieldColumnMapper.getFieldName() + "}");
}
}else if(generatedValue.strategy()==GenerationType.SEQUENCE){
......
......@@ -53,9 +53,10 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
FieldColumnMapper idFieldColumnMapper=MapperMetadata.getIdColumn(entityClass.getSimpleName());
SQL sql=new SQL();
sql.SELECT(selectColumnMapper(entityClass));
sql.FROM(MapperMetadata.getTableName(entityClass)+" sel_tmp_table ");
sql.WHERE(idFieldColumnMapper.getColumnName()+" = #{"+idFieldColumnMapper.getFieldName()+"}");
sql.SELECT(selectColumnMapper(entityClass))
.FROM(MapperMetadata.getTableName(entityClass)+" sel_tmp_table ")
.WHERE(idFieldColumnMapper.getColumnName()
+ " = #{"+idFieldColumnMapper.getFieldName() + "}");
String getSql=sql.toString();
_logger.trace("Get SQL \n"+getSql);
MapperMetadata.sqlsMap.put(MapperMetadata.getTableName(entityClass) + SQL_TYPE.GET_SQL,getSql);
......@@ -69,8 +70,8 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
return MapperMetadata.sqlsMap.get(MapperMetadata.getTableName(entityClass) + SQL_TYPE.FINDALL_SQL);
}
SQL sql=new SQL();
sql.SELECT(selectColumnMapper(entityClass));
sql.FROM(MapperMetadata.getTableName(entityClass)+" sel_tmp_table ");
sql.SELECT(selectColumnMapper(entityClass))
.FROM(MapperMetadata.getTableName(entityClass)+" sel_tmp_table ");
String findAllSql=sql.toString();
_logger.trace("Find All SQL \n"+findAllSql);
MapperMetadata.sqlsMap.put(MapperMetadata.getTableName(entityClass) + SQL_TYPE.FINDALL_SQL,findAllSql);
......@@ -80,8 +81,8 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
public String execute(T entity) {
MapperMetadata.buildColumnList(entity.getClass());
SQL sql=new SQL();
sql.SELECT(selectColumnMapper(entity.getClass()));
sql.FROM(MapperMetadata.getTableName(entity.getClass())+" sel_tmp_table ");
sql.SELECT(selectColumnMapper(entity.getClass()))
.FROM(MapperMetadata.getTableName(entity.getClass())+" sel_tmp_table ");
for(FieldColumnMapper fieldColumnMapper : MapperMetadata.fieldsMap.get(entity.getClass().getSimpleName())) {
String fieldValue = BeanUtil.getValue(entity, fieldColumnMapper.getFieldName());
......@@ -121,7 +122,8 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
.append(" ")
.append(fieldColumnMapper.getFieldName());
}
_logger.trace("Column "+ columnCount + " , ColumnName : "+fieldColumnMapper.getColumnName()+" , FieldName : " + fieldColumnMapper.getFieldName());
_logger.trace("Column {} , ColumnName : {} , FieldName : {}" ,
columnCount,fieldColumnMapper.getColumnName(),fieldColumnMapper.getFieldName());
}
return selectColumn.toString();
}
......@@ -133,11 +135,16 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
public String executePageResultsCount(T entity) {
JpaPagination pagination=(JpaPagination)entity;
//获取缓存数据
PageResultsSqlCache pageResultsSqlCache=JpaBaseService.pageResultsBoundSqlCache.getIfPresent(pagination.getPageResultSelectUUID());
PageResultsSqlCache pageResultsSqlCache =
JpaBaseService.pageResultsBoundSqlCache.getIfPresent(pagination.getPageResultSelectUUID());
//多个空格 tab 替换成1个空格
String selectSql=pageResultsSqlCache.getSql().replaceAll("\r\n+", " \n").replaceAll("\n+", " \n").replaceAll("\t", " ").replaceAll(" +"," ");
String selectSql = pageResultsSqlCache.getSql()
.replaceAll("\r\n+", " \n")
.replaceAll("\n+", " \n")
.replaceAll("\t", " ")
.replaceAll(" +"," ");
BoundSql boundSql=(BoundSql)pageResultsSqlCache.getBoundSql();
_logger.trace("Count original SQL :\n" + selectSql);
_logger.trace("Count original SQL :\n{}" , selectSql);
StringBuffer sql=new StringBuffer(SqlSyntax.SELECT +" "+ SqlSyntax.Functions.COUNT_ONE +" countrows_ ");
StringBuffer countSql=new StringBuffer();
......@@ -153,7 +160,7 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
countSql.append(selectSql);
}
String countSqlLowerCase = countSql.toString().toLowerCase();
_logger.trace("Count SQL LowerCase :\n" + countSqlLowerCase);
_logger.trace("Count SQL LowerCase :\n{}" , countSqlLowerCase);
if(countSqlLowerCase.indexOf(SqlSyntax.DISTINCT + " ")>0 //去重
||countSqlLowerCase.indexOf(" " + SqlSyntax.GROUPBY + " ")>0 //分组
......@@ -167,7 +174,7 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
}else {
int fromIndex = countSqlLowerCase.indexOf(" " + SqlSyntax.FROM + " ");
int orderByIndex = countSqlLowerCase.indexOf(" " + SqlSyntax.ORDERBY + " ");
_logger.trace("Count SQL from Index "+ fromIndex +" , order by " +orderByIndex);
_logger.trace("Count SQL from Index {} , order by {}" ,fromIndex,orderByIndex);
if(orderByIndex > -1) {
sql.append(countSql.substring(fromIndex,orderByIndex));
}else {
......@@ -176,7 +183,7 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
}
//删除缓存
JpaBaseService.pageResultsBoundSqlCache.invalidate(pagination.getPageResultSelectUUID());
_logger.trace("Count SQL : \n" + sql);
_logger.trace("Count SQL : \n{}" , sql);
return sql.toString();
}
......
......@@ -51,7 +51,7 @@ public class SqlProviderUpdate <T extends JpaBaseEntity>{
for (int i = 0; i < listFields.size(); i++) {
FieldColumnMapper fieldColumnMapper=listFields.get(i);
_logger.trace("Field " +fieldColumnMapper.getFieldName()+" , Type "+ fieldColumnMapper.getFieldType());
_logger.trace("Field {} , Type {}",fieldColumnMapper.getFieldName(), fieldColumnMapper.getFieldType());
if (fieldColumnMapper.isIdColumn()) {
continue;
......@@ -71,7 +71,7 @@ public class SqlProviderUpdate <T extends JpaBaseEntity>{
FieldColumnMapper idFieldColumnMapper=MapperMetadata.getIdColumn(entity.getClass().getSimpleName());
sql.WHERE(idFieldColumnMapper.getColumnName() + "=#{"+idFieldColumnMapper.getFieldName()+"}");
_logger.trace("Update SQL : \n" + sql);
_logger.trace("Update SQL : \n{}" , sql);
return sql.toString();
}
......
......@@ -20,7 +20,7 @@ package org.apache.mybatis.jpa.util;
import java.util.ArrayList;
import java.util.List;
public class StringUtils {
public class StringUtils extends org.apache.commons.lang3.StringUtils {
public static boolean isNumeric(String val) {
char[] chars = val.toCharArray();
......@@ -55,14 +55,6 @@ public class StringUtils {
return num;
}
public static boolean isBlank(String str) {
return str==null || str.matches("\\s*");
}
public static boolean isNotBlank(String val) {
return !isBlank(val);
}
public static List<String> string2List(String string, String split) {
String[] strs = {};
if (string != null && !string.equals("")) {
......
......@@ -134,14 +134,25 @@ public class MyBatisTestRunner {
idList.add("ab7422e9-a91a-4840-9e59-9d911257c918");
idList.add("12b6ceb8-573b-4f01-ad85-cfb24cfa007c");
idList.add("dafd5ba4-d2e3-4656-bd42-178841e610fe");
service.batchDelete(idList);
service.deleteBatch(idList);
}
@Test
public void logicDelete() throws Exception{
_logger.info("logicDelete...");
List<String> idList=new ArrayList<String>();
idList.add("8584804d-b5ac-45d2-9f91-4dd8e7a090a7");
idList.add("ab7422e9-a91a-4840-9e59-9d911257c918");
idList.add("12b6ceb8-573b-4f01-ad85-cfb24cfa007c");
idList.add("dafd5ba4-d2e3-4656-bd42-178841e610fe");
service.logicDelete(idList);
}
@Test
public void batchDeleteByIds() throws Exception{
_logger.info("batchDeleteByIds...");
service.batchDelete("2");
service.batchDelete("2,639178432667713536");
service.deleteBatch("2");
service.deleteBatch("2,639178432667713536");
}
@Test
......
......@@ -100,7 +100,7 @@ public class MybatisJpaApplicationTest{
idList.add("ab7422e9-a91a-4840-9e59-9d911257c918");
idList.add("12b6ceb8-573b-4f01-ad85-cfb24cfa007c");
idList.add("dafd5ba4-d2e3-4656-bd42-178841e610fe");
studentsService.batchDelete(idList);
studentsService.deleteBatch(idList);
}
@Test
......
......@@ -88,7 +88,7 @@ public class MyBatisTestRunner {
idList.add("ab7422e9-a91a-4840-9e59-9d911257c918");
idList.add("12b6ceb8-573b-4f01-ad85-cfb24cfa007c");
idList.add("dafd5ba4-d2e3-4656-bd42-178841e610fe");
service.batchDelete(idList);
service.deleteBatch(idList);
}
@Test
......
......@@ -15,24 +15,23 @@
</modules>
<properties>
<mybatis.jpa.extra.version>2.6</mybatis.jpa.extra.version><!--project version-->
<mybatis.jpa.extra.version>2.7</mybatis.jpa.extra.version><!--project version-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>1.8</jdk.version>
<spring.version>5.2.0.RELEASE</spring.version>
<springboot.version>2.2.6.RELEASE</springboot.version>
<spring.version>5.3.14</spring.version>
<springboot.version>2.6.2</springboot.version>
<commons-dbcp2.version>2.1.1</commons-dbcp2.version>
<commons-pool2.version>2.4.2</commons-pool2.version>
<mysql-connnector.version>8.0.21</mysql-connnector.version>
<mysql-connnector.version>8.0.26</mysql-connnector.version>
<servlet-api.version>3.1.0</servlet-api.version>
<commons-io.version>2.4</commons-io.version>
<commons-codec.version>1.9</commons-codec.version>
<log4j.version>2.17.0</log4j.version>
<slf4j.version>1.7.28</slf4j.version>
<jackson.version1>1.9.13</jackson.version1>
<slf4j.version>1.7.32</slf4j.version>
<jackson.version2>2.10.0</jackson.version2>
<druid.version>1.1.22</druid.version>
<druid.version>1.2.8</druid.version>
<persistence.version>2.2.1</persistence.version>
<mybatis.version>3.5.7</mybatis.version>
<mybatis.version>3.5.8</mybatis.version>
<mybatis-spring.version>2.0.6</mybatis-spring.version>
</properties>
......@@ -275,6 +274,11 @@
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册