From 118e7590e59e31f1d21312584311a7febfe10c55 Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Tue, 12 Oct 2021 10:42:32 +0800 Subject: [PATCH] =?UTF-8?q?fix[orm]:=20=E4=BF=AE=E5=A4=8D=E5=BD=93?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93key=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E6=97=A0=E6=B3=95set=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zfoo/orm/util/MongoIdUtils.java | 23 ++++++++++++------- .../com/zfoo/orm/util/MongoIdUtilsTest.java | 4 +--- .../com/zfoo/protocol/util/StringUtils.java | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java b/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java index 5201855d..fde8d35c 100644 --- a/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java +++ b/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java @@ -16,6 +16,7 @@ package com.zfoo.orm.util; import com.mongodb.client.model.Filters; import com.zfoo.orm.OrmContext; import com.zfoo.protocol.collection.CollectionUtils; +import com.zfoo.protocol.util.AssertionUtils; import com.zfoo.protocol.util.StringUtils; import org.bson.Document; @@ -54,7 +55,8 @@ public abstract class MongoIdUtils { , new Document("$inc", new Document(COUNT, 1L))); if (document == null) { - collection.insertOne(new Document("_id", documentName).append(COUNT, INIT_ID)); + var result = collection.insertOne(new Document("_id", documentName).append(COUNT, INIT_ID)); + AssertionUtils.notNull(result.getInsertedId()); return INIT_ID; } @@ -78,20 +80,25 @@ public abstract class MongoIdUtils { * @param documentName 档id */ public static void resetIncrementIdFromMongoDefault(String documentName) { - setIncrementIdFromMongo(0L, COLLECTION_NAME, documentName); + setIncrementIdFromMongo(COLLECTION_NAME, documentName, 0L); } - public static void setIncrementIdFromMongo(long value, Class clazz) { - setIncrementIdFromMongo(value, COLLECTION_NAME, StringUtils.uncapitalize(clazz.getSimpleName())); + public static void setIncrementIdFromMongo(Class clazz, long value) { + setIncrementIdFromMongo(COLLECTION_NAME, StringUtils.uncapitalize(clazz.getSimpleName()), value); } - public static void setIncrementIdFromMongo(long value, String documentName) { - setIncrementIdFromMongo(value, COLLECTION_NAME, documentName); + public static void setIncrementIdFromMongo(String documentName, long value) { + setIncrementIdFromMongo(COLLECTION_NAME, documentName, value); } - public static void setIncrementIdFromMongo(long value, String collectionName, String documentName) { + public static void setIncrementIdFromMongo(String collectionName, String documentName, long value) { var collection = OrmContext.getOrmManager().getCollection(collectionName); - collection.findOneAndUpdate(Filters.eq("_id", documentName), new Document("$set", new Document(COUNT, value))); + var document = collection.findOneAndUpdate(Filters.eq("_id", documentName), new Document("$set", new Document(COUNT, value))); + + if (document == null) { + var result = collection.insertOne(new Document("_id", documentName).append(COUNT, value)); + AssertionUtils.notNull(result.getInsertedId()); + } } diff --git a/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java b/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java index 2b46a20e..16d934e5 100644 --- a/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java +++ b/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java @@ -81,8 +81,6 @@ public class MongoIdUtilsTest { @Test public void set() { var context = new ClassPathXmlApplicationContext("application.xml"); - var id = MongoIdUtils.getIncrementIdFromMongoDefault("myDocument"); - System.out.println(id); - MongoIdUtils.setIncrementIdFromMongo(100, "myDocument"); + MongoIdUtils.setIncrementIdFromMongo("myDocument", 100); } } diff --git a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java index 577fb8cf..641c5c0a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java @@ -35,7 +35,7 @@ public abstract class StringUtils { public static final String SPACE = " "; public static final String TAB = " "; - + public static final String TAB_ASCII = "\t"; public static final String COMMA = ",";// [com·ma || 'kɒmə] n. 逗点; 逗号 public static final String COMMA_REGEX = ",|,";