diff --git a/mybatis-jpa-extra-2.4.jar b/mybatis-jpa-extra-2.4.jar index 88c2cc3088bf938977b61eb64e837108d58c6d8f..861344af864eb50ff3e10750a9696cbbd7b25684 100644 Binary files a/mybatis-jpa-extra-2.4.jar and b/mybatis-jpa-extra-2.4.jar differ diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaBaseService.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaBaseService.java index ad7bed0e53027d1216459c92e8983d6e988a5cc8..2d57fda34024c60d56f968f9a2512c0b6c8661ab 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaBaseService.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaBaseService.java @@ -31,6 +31,8 @@ import org.ehcache.config.builders.ExpiryPolicyBuilder; import org.ehcache.config.builders.ResourcePoolsBuilder; import org.ehcache.config.builders.UserManagedCacheBuilder; +import com.fasterxml.jackson.annotation.JsonIgnore; + /** * @author Crystal.Sea @@ -41,6 +43,7 @@ public class JpaBaseService { final static Logger _logger = Logger.getLogger(JpaBaseService.class); + @JsonIgnore //定义全局缓存 public static UserManagedCache pageResultsBoundSqlCache = UserManagedCacheBuilder .newUserManagedCacheBuilder(String.class, PageResultsSqlCache.class) @@ -51,17 +54,20 @@ public class JpaBaseService { /** * mapper class */ + @JsonIgnore private String mapperClass = ""; /** * entity Class */ + @JsonIgnore @SuppressWarnings("rawtypes") private Class entityClass; /** * mapper */ + @JsonIgnore private IJpaBaseMapper mapper = null; //TODO diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java index cd6eab5b77928a35fa05a7ad71ff355cfcdf018c..d4ca92f1fdbbe816febd7fef51aa5192848b3949 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java @@ -54,7 +54,7 @@ public class SqlProviderQuery { FieldColumnMapper idFieldColumnMapper=MapperMetadata.getIdColumn(entityClass.getSimpleName()); SQL sql=new SQL(); sql.SELECT(selectColumnMapper(entityClass)); - sql.FROM(MapperMetadata.getTableName(entityClass)); + sql.FROM(MapperMetadata.getTableName(entityClass)+" sel_tmp_table "); sql.WHERE(idFieldColumnMapper.getColumnName()+" = #{"+idFieldColumnMapper.getFieldName()+"}"); String getSql=sql.toString(); _logger.trace("Get SQL \n"+getSql); @@ -70,7 +70,7 @@ public class SqlProviderQuery { } SQL sql=new SQL(); sql.SELECT(selectColumnMapper(entityClass)); - sql.FROM(MapperMetadata.getTableName(entityClass)); + sql.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); @@ -81,7 +81,7 @@ public class SqlProviderQuery { MapperMetadata.buildColumnList(entity.getClass()); SQL sql=new SQL(); sql.SELECT(selectColumnMapper(entity.getClass())); - sql.FROM(MapperMetadata.getTableName(entity.getClass())); + sql.FROM(MapperMetadata.getTableName(entity.getClass())+" sel_tmp_table "); for(FieldColumnMapper fieldColumnMapper : MapperMetadata.fieldsMap.get(entity.getClass().getSimpleName())) { String fieldValue = BeanUtil.getValue(entity, fieldColumnMapper.getFieldName()); @@ -110,26 +110,18 @@ public class SqlProviderQuery { } public String selectColumnMapper(Class entityClass) { - StringBuffer selectColumn =new StringBuffer(""); + StringBuffer selectColumn =new StringBuffer("sel_tmp_table.* "); int columnCount = 0; for(FieldColumnMapper fieldColumnMapper : MapperMetadata.fieldsMap.get(entityClass.getSimpleName())) { - - if(columnCount == 0) { - if(fieldColumnMapper.getColumnName().equalsIgnoreCase(fieldColumnMapper.getFieldName())) { - selectColumn.append(fieldColumnMapper.getColumnName()); - }else { - selectColumn.append(fieldColumnMapper.getColumnName()).append(" ").append(fieldColumnMapper.getFieldName()); - } - - }else { - if(fieldColumnMapper.getColumnName().equalsIgnoreCase(fieldColumnMapper.getFieldName())) { - selectColumn.append(",").append(fieldColumnMapper.getColumnName()); - }else { - selectColumn.append(",").append(fieldColumnMapper.getColumnName()).append(" ").append(fieldColumnMapper.getFieldName()); - } - } columnCount ++; - ; + //不同的属性和数据库字段不一致的需要进行映射 + if(!fieldColumnMapper.getColumnName().equalsIgnoreCase(fieldColumnMapper.getFieldName())) { + selectColumn.append(",") + .append(fieldColumnMapper.getColumnName()) + .append(" ") + .append(fieldColumnMapper.getFieldName()); + } + _logger.debug("Column "+ columnCount + " , ColumnName : "+fieldColumnMapper.getColumnName()+" , FieldName : " + fieldColumnMapper.getFieldName()); } return selectColumn.toString(); }