zhou-hao 4 سال پیش
والد
کامیت
6fbf3af50f

+ 32 - 22
hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/AutoDDLProcessor.java

@@ -2,6 +2,7 @@ package org.hswebframework.web.crud.configuration;
 
 import lombok.Getter;
 import lombok.Setter;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.hswebframework.ezorm.rdb.operator.DatabaseOperator;
 import org.hswebframework.web.api.crud.entity.EntityFactory;
@@ -12,8 +13,14 @@ import org.springframework.transaction.ReactiveTransactionManager;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+import reactor.core.scheduler.Scheduler;
+import reactor.core.scheduler.Schedulers;
 
+import java.time.Duration;
 import java.util.*;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 @Getter
@@ -38,6 +45,7 @@ public class AutoDDLProcessor implements InitializingBean {
     private boolean reactive;
 
     @Override
+    @SneakyThrows
     public void afterPropertiesSet() {
         if (entityFactory instanceof MapperEntityFactory) {
             MapperEntityFactory factory = ((MapperEntityFactory) entityFactory);
@@ -52,30 +60,32 @@ public class AutoDDLProcessor implements InitializingBean {
                     .loadAllTable();
 
             List<Class> entities = this.entities.stream().map(EntityInfo::getRealType).collect(Collectors.toList());
-            if (reactive) {
-                Flux.fromIterable(entities)
-                        .doOnNext(type -> log.info("auto ddl for {}", type))
-                        .map(resolver::resolve)
-                        .flatMap(meta -> operator.ddl()
-                                .createOrAlter(meta)
-                                .commit()
-                                .reactive())
-                        .doOnError((err) -> log.error(err.getMessage(), err))
-                        .then()
-                        .block();
-            } else {
-                for (Class<?> entity : entities) {
-                    log.warn("auto ddl for {}", entity);
-                    try {
-                        operator.ddl()
-                                .createOrAlter(resolver.resolve(entity))
-                                .commit()
-                                .sync();
-                    } catch (Exception e) {
-                        log.warn(e.getMessage(), e);
-                    }
+//            if (reactive) {
+//                Flux.fromIterable(entities)
+//                        .doOnNext(type -> log.info("auto ddl for {}", type))
+//                        .map(resolver::resolve)
+//                        .flatMap(meta->operator.ddl()
+//                                .createOrAlter(meta)
+//                                .commit()
+//                                .reactive())
+//                        .doOnError((err) -> log.error(err.getMessage(), err))
+//                        .then()
+//                        .toFuture().get(2, TimeUnit.MINUTES);
+//
+//            } else {
+            for (Class<?> entity : entities) {
+                log.trace("auto ddl for {}", entity);
+                try {
+                    operator.ddl()
+                            .createOrAlter(resolver.resolve(entity))
+                            .commit()
+                            .sync();
+                } catch (Exception e) {
+                    log.error(e.getMessage(), e);
+                    throw e;
                 }
             }
+//            }
         }
     }
 }

+ 1 - 1
pom.xml

@@ -90,7 +90,7 @@
         <cglib.version>3.2.2</cglib.version>
         <aspectj.version>1.6.12</aspectj.version>
 
-        <hsweb.ezorm.version>4.0.5-SNAPSHOT</hsweb.ezorm.version>
+        <hsweb.ezorm.version>4.0.6-SNAPSHOT</hsweb.ezorm.version>
         <hsweb.utils.version>3.0.2</hsweb.utils.version>
         <hsweb.expands.version>3.0.2</hsweb.expands.version>
         <swagger.version>2.7.0</swagger.version>