优化默认生成器

This commit is contained in:
zhou-hao
2019-10-15 11:12:51 +08:00
parent 7f9672158c
commit e520a04209

View File

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