From 145a6efab30d7a0acb76eee6cd512eba93665efe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 05 十二月 2020 17:19:40 +0800 Subject: [PATCH] 大淘客编码问题解决,mybatis优化 --- utils/src/main/java/org/yeshi/utils/mongo/MongoDaoUtil.java | 28 +++++++++++++++++++++------- 1 files changed, 21 insertions(+), 7 deletions(-) diff --git a/utils/src/main/java/org/yeshi/utils/mongo/MongoDaoUtil.java b/utils/src/main/java/org/yeshi/utils/mongo/MongoDaoUtil.java index 2ed117c..1b0c56c 100644 --- a/utils/src/main/java/org/yeshi/utils/mongo/MongoDaoUtil.java +++ b/utils/src/main/java/org/yeshi/utils/mongo/MongoDaoUtil.java @@ -1,6 +1,8 @@ package org.yeshi.utils.mongo; import org.springframework.data.annotation.Transient; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.yeshi.utils.entity.wx.WXAPPInfo; @@ -41,19 +43,31 @@ List<Field> fields = getValidField(clz); StringBuilder builder = new StringBuilder(); - builder.append(String.format("void updateSelective(%s bean){\r\n", clz.getSimpleName())); + builder.append(String.format("public void updateSelective(%s bean) {\r\n", clz.getSimpleName())); - builder.append(" Update update=new Update();\r\n"); + builder.append(" Query query = new Query();\r\n"); + builder.append(" query.addCriteria(Criteria.where(\"id\").is(bean.getId()));\r\n"); + + builder.append(" Update update = new Update();\r\n"); for (Field f : fields) { + if ("id".equalsIgnoreCase(f.getName()) || "createTime".equalsIgnoreCase(f.getName())) + continue; + + if (f.getModifiers() == 25) {//public final static淇グ + continue; + } String getMethod = String.format("bean.get%s()", f.getName().substring(0, 1).toUpperCase() + f.getName().substring(1)); - builder.append(String.format(" if(%s!=null){\r\n", getMethod)); - builder.append(String.format(" update.set(\"%s\",%s)\r\n", f.getName(), getMethod)); - builder.append(" }\r\n"); + if (f.getName().equalsIgnoreCase("updateTime")) { + builder.append(String.format(" update.set(\"%s\", %s);\r\n", f.getName(), "new Date()")); + } else { + builder.append(String.format(" if (%s != null) {\r\n", getMethod)); + builder.append(String.format(" update.set(\"%s\", %s);\r\n", f.getName(), f.getName().equalsIgnoreCase("updateTime") ? "new Date()" : getMethod)); + builder.append(" }\r\n"); + } } + builder.append(" update(query, update);\r\n"); builder.append("}"); - - System.out.println(builder.toString()); return builder.toString(); } -- Gitblit v1.8.0