소스 검색

优化默认生成器

zhou-hao 5 년 전
부모
커밋
e520a04209
1개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 2
      hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/generator/DefaultIdGenerator.java

+ 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