From 662ab99cebf58d9f7d91fabc5c29029f49746539 Mon Sep 17 00:00:00 2001 From: luca Date: Tue, 14 May 2024 10:04:20 +0800 Subject: [PATCH] feat[orm]:the @Id annotation supports the ObjectId type --- orm/src/main/java/com/zfoo/orm/manager/OrmManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java index 38f0088e..44a1b1c8 100644 --- a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java +++ b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java @@ -39,6 +39,7 @@ import org.bson.Document; import org.bson.codecs.configuration.CodecRegistries; import org.bson.codecs.configuration.CodecRegistry; import org.bson.codecs.pojo.PojoCodecProvider; +import org.bson.types.ObjectId; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.type.AnnotationMetadata; @@ -408,6 +409,8 @@ public class OrmManager implements IOrmManager { idFiledValue = RandomUtils.randomDouble(); } else if (idFieldType.equals(String.class)) { idFiledValue = RandomUtils.randomString(10); + } else if (idFieldType.equals(ObjectId.class)) { + idFiledValue = new ObjectId(); } else { throw new RunException("orm only supports int long float double String"); } @@ -536,7 +539,9 @@ public class OrmManager implements IOrmManager { } checkSubEntity(clazz, valueType); - } else { + } else if (ObjectId.class.isAssignableFrom(fieldType)){ + // do nothing + }else { checkEntity(fieldType); } }