|
@@ -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
|