From f875b91da8df7104358fd84aae00d3a5afd16781 Mon Sep 17 00:00:00 2001 From: zhouwm2008 Date: Wed, 1 Jun 2022 15:21:11 +0800 Subject: [PATCH 1/4] fix #19 #20 --- .../system/SysMysqlCreateTableManagerImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java index 6ec8506..294af5e 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java @@ -433,8 +433,13 @@ private List getModifyFieldList(List tableColumnList, L // 3.验证长度个小数点位数 String typeAndLength = createTableParam.getFieldType().toLowerCase(); if (createTableParam.getFileTypeLength() == 1) { - // 拼接出类型加长度,比如varchar(1) - typeAndLength = typeAndLength + "(" + createTableParam.getFieldLength() + ")"; + //如果是int类型,mysql5.6及以下版本为int(11),mysql5.7及以上版本为int,此处兼容处理 + if("int".equalsIgnoreCase(typeAndLength) && "int".equalsIgnoreCase(sysColumn.getColumn_type())) { + //只有类型,不需要拼接长度,mysql5.7后int型不能设置长度 + } else { + // 拼接出类型加长度,比如varchar(1) + typeAndLength = typeAndLength + "(" + createTableParam.getFieldLength() + ")"; + } } else if (createTableParam.getFileTypeLength() == 2) { // 拼接出类型加长度,比如varchar(1) typeAndLength = typeAndLength + "(" + createTableParam.getFieldLength() + "," @@ -442,6 +447,7 @@ private List getModifyFieldList(List tableColumnList, L } // 判断类型+长度是否相同 + if (!sysColumn.getColumn_type().toLowerCase().equals(typeAndLength)) { modifyFieldList.add(modifyTableParam); continue; @@ -659,6 +665,8 @@ private Field[] recursionParents(Class clas, Field[] fields) { if (clas.getSuperclass() != null) { Class clsSup = clas.getSuperclass(); List fieldList = new ArrayList(); + //把父类属性字段放到最前面 + List superFieldList = new ArrayList(); fieldList.addAll(Arrays.asList(fields)); // 获取当前class的所有fields的name列表 List fdNames = getFieldNames(fieldList); @@ -669,6 +677,7 @@ private Field[] recursionParents(Class clas, Field[] fields) { } fieldList.add(pfd); } + fieldList.addAll(0, superFieldList); fields = new Field[fieldList.size()]; int i = 0; for (Object field : fieldList.toArray()) { From b66c539cd38c7c673e33d5b915ee3a36379205fe Mon Sep 17 00:00:00 2001 From: zhouwm2008 Date: Wed, 1 Jun 2022 15:45:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=85=BC=E5=AE=B9mysql=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E7=89=88=E6=9C=ACint=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5=20fix?= =?UTF-8?q?=20#19?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/system/SysMysqlCreateTableManagerImpl.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java index 294af5e..dd9ae39 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java @@ -447,7 +447,6 @@ private List getModifyFieldList(List tableColumnList, L } // 判断类型+长度是否相同 - if (!sysColumn.getColumn_type().toLowerCase().equals(typeAndLength)) { modifyFieldList.add(modifyTableParam); continue; @@ -665,8 +664,6 @@ private Field[] recursionParents(Class clas, Field[] fields) { if (clas.getSuperclass() != null) { Class clsSup = clas.getSuperclass(); List fieldList = new ArrayList(); - //把父类属性字段放到最前面 - List superFieldList = new ArrayList(); fieldList.addAll(Arrays.asList(fields)); // 获取当前class的所有fields的name列表 List fdNames = getFieldNames(fieldList); @@ -677,7 +674,6 @@ private Field[] recursionParents(Class clas, Field[] fields) { } fieldList.add(pfd); } - fieldList.addAll(0, superFieldList); fields = new Field[fieldList.size()]; int i = 0; for (Object field : fieldList.toArray()) { From b91f917e9f74c63791c4168a8505466b0006ddfb Mon Sep 17 00:00:00 2001 From: zhouwm2008 Date: Wed, 1 Jun 2022 15:54:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=8A=8A=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E7=88=B6=E7=B1=BB=E5=AD=97=E6=AE=B5=E6=94=BE=E5=9C=A8=E5=BB=BA?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E6=9C=80=E5=89=8D=E9=9D=A2=20fix=20#20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/system/SysMysqlCreateTableManagerImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java index dd9ae39..294af5e 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java @@ -447,6 +447,7 @@ private List getModifyFieldList(List tableColumnList, L } // 判断类型+长度是否相同 + if (!sysColumn.getColumn_type().toLowerCase().equals(typeAndLength)) { modifyFieldList.add(modifyTableParam); continue; @@ -664,6 +665,8 @@ private Field[] recursionParents(Class clas, Field[] fields) { if (clas.getSuperclass() != null) { Class clsSup = clas.getSuperclass(); List fieldList = new ArrayList(); + //把父类属性字段放到最前面 + List superFieldList = new ArrayList(); fieldList.addAll(Arrays.asList(fields)); // 获取当前class的所有fields的name列表 List fdNames = getFieldNames(fieldList); @@ -674,6 +677,7 @@ private Field[] recursionParents(Class clas, Field[] fields) { } fieldList.add(pfd); } + fieldList.addAll(0, superFieldList); fields = new Field[fieldList.size()]; int i = 0; for (Object field : fieldList.toArray()) { From fbfe5ded6f893c599b9a61a968c70f001e36fdf7 Mon Sep 17 00:00:00 2001 From: LiuJiawei Date: Wed, 17 Aug 2022 23:19:20 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20mybatis-enhance-actabl?= =?UTF-8?q?e=20=E5=8C=85=E6=89=93=E5=85=A5=E5=88=B0=20lib=20=E6=97=B6,?= =?UTF-8?q?=E7=B1=BB=E5=8A=A0=E8=BD=BD=E5=99=A8=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=20model=20=E7=B1=BB=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=89=BE=E5=88=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mybatis-enhance-actable/README.md | 3 +++ mybatis-enhance-actable/pom.xml | 2 +- .../gitee/sunchenbin/mybatis/actable/utils/ClassScaner.java | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/mybatis-enhance-actable/README.md b/mybatis-enhance-actable/README.md index 36c9200..a6a1824 100644 --- a/mybatis-enhance-actable/README.md +++ b/mybatis-enhance-actable/README.md @@ -751,3 +751,6 @@ public class TestController{ 73. issues/I3PRVK:添加@IgnoreUpdate注解 标注当前字段参与创建不参与更新,解决使用@DefaultValue("NULL ON UPDATE CURRENT_TIMESTAMP")时当前字段每次重启项目都会进行更新操作的问题(版本1.5.0.RELEASE) 74. issues/I3NGD2:添加@IgnoreTable注解 设置某个model实体不参与建表操作(版本1.5.0.RELEASE) 75. issues/I3TNMB:修复使用mybatisplus时使用了多租户的插件时,使用@ColumnComment注解报错的问题(版本1.5.0.RELEASE) +76. issues/#19:修复 mysql MySQL5.7以上 int类型字段每次更新问题 [#19](https://github.com/sunchenbin/A.CTable-Frame/issues/19) [zhouwm808](https://github.com/zhouwm808/A.CTable-Frame) (版本1.5.0.PORTER.ORG.CN) +77. issues/#20:修复 实体类存在父类时,父类字段在表末尾问题 [#20](https://github.com/sunchenbin/A.CTable-Frame/issues/20) [zhouwm808](https://github.com/zhouwm808/A.CTable-Frame) (版本1.5.0.PORTER.ORG.CN) +78. 修复 mybatis-enhance-actable 包打入到 lib 时,类加载器不一致导致的 model 类无法找到的问题 [yanzhaoyl](https://github.com/yanzhaoyl/A.CTable-Frame) (版本1.5.0.PORTER.ORG.CN) \ No newline at end of file diff --git a/mybatis-enhance-actable/pom.xml b/mybatis-enhance-actable/pom.xml index 67fd95a..09fb9fc 100644 --- a/mybatis-enhance-actable/pom.xml +++ b/mybatis-enhance-actable/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.gitee.sunchenbin.mybatis.actable mybatis-enhance-actable - 1.5.0.RELEASE + 1.5.0.PORTER.ORG.CN org.sonatype.oss diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/utils/ClassScaner.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/utils/ClassScaner.java index a740acd..1f0b221 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/utils/ClassScaner.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/utils/ClassScaner.java @@ -93,8 +93,10 @@ public Set doScan(String basePackage) { if ((includeFilters.size() == 0 && excludeFilters.size() == 0) || matches(metadataReader)) { try { - classes.add(Class.forName(metadataReader - .getClassMetadata().getClassName())); + ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); + Class clazz = contextClassLoader.loadClass(metadataReader.getClassMetadata().getClassName()); + classes.add(clazz); +// classes.add(Class.forName(metadataReader.getClassMetadata().getClassName())); } catch (ClassNotFoundException e) { e.printStackTrace(); }