Explorar o código

优化默认生成器

zhou-hao %!s(int64=5) %!d(string=hai) anos
pai
achega
e520a04209

+ 5 - 2
hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/generator/DefaultIdGenerator.java

@@ -2,6 +2,7 @@ package org.hswebframework.web.crud.generator;
 
 import lombok.Getter;
 import lombok.Setter;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.hswebframework.ezorm.core.DefaultValue;
 import org.hswebframework.ezorm.core.DefaultValueGenerator;
@@ -28,14 +29,16 @@ public class DefaultIdGenerator implements DefaultValueGenerator<RDBColumnMetada
     }
 
     @Override
+    @SneakyThrows
     public DefaultValue generate(RDBColumnMetadata metadata) {
         return Mono.justOrEmpty(mappings.get(metadata.getOwner().getName()))
                 .switchIfEmpty(Mono.justOrEmpty(defaultId))
                 .flatMap(id->Mono.justOrEmpty(metadata.findFeature(DefaultValueGenerator.createId(id))))
                 .doOnNext(gen-> log.debug("use default id generator : {} for column : {}", gen.getSortId(), metadata.getFullName()))
                 .map(gen->gen.generate(metadata))
-                .blockOptional()
-                .orElseThrow(()->new UnsupportedOperationException("不支持的生成器:" + defaultId));
+                .switchIfEmpty(Mono.error(()->new UnsupportedOperationException("不支持的生成器:" + defaultId)))
+                .toFuture()
+                .get();
     }
 
     @Override