From 92eba0df3e8a83a0ea0fe7090cfe948851ad505a Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 19 十二月 2022 14:12:52 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/helper/GdbHelper.java |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/lf/server/helper/GdbHelper.java b/src/main/java/com/lf/server/helper/GdbHelper.java
index 17ed1ba..5db1da2 100644
--- a/src/main/java/com/lf/server/helper/GdbHelper.java
+++ b/src/main/java/com/lf/server/helper/GdbHelper.java
@@ -188,7 +188,7 @@
     /**
      * 鑾峰彇瀛楁鏄犲皠
      */
-    private static <T> void getFieldMapper(Class clazz, Layer layer, Map<Integer, Field> map) {
+    private static void getFieldMapper(Class clazz, Layer layer, Map<Integer, Field> map) {
         try {
             FeatureDefn fd = layer.GetLayerDefn();
             for (int i = 0, count = fd.GetFieldCount(); i < count; i++) {
@@ -208,7 +208,7 @@
                 }
             }
 
-            if (OBJECT != clazz.getSuperclass().getName()) {
+            if (!OBJECT.equals(clazz.getSuperclass().getName())) {
                 getFieldMapper(clazz.getSuperclass(), layer, map);
             }
         } catch (Exception ex) {
@@ -346,12 +346,15 @@
                     continue;
                 }
                 Layer layer = createLayer(dataSource, baseMapper);
-                if(null == layer){
+                if (null == layer) {
                     continue;
                 }
 
                 String className = ClassHelper.getClassName(baseMapper);
                 Class clazz = ClassHelper.getEntityClass(className);
+                List<Field> fields = new ArrayList<>();
+
+                getFields(clazz, fields);
 
                 List<?> list = map.get(key);
             }
@@ -408,4 +411,27 @@
                 return ogr.wkbUnknown;
         }
     }
+
+    /**
+     * 鑾峰彇瀛楁
+     */
+    private static void getFields(Class clazz, List<Field> list) {
+        try {
+            Field[] fields = clazz.getDeclaredFields();
+            for (Field f : fields) {
+                if ("geom".equals(f.getName())) {
+                    continue;
+                }
+
+                f.setAccessible(true);
+                list.add(f);
+            }
+
+            if (!OBJECT.equals(clazz.getSuperclass().getName())) {
+                getFields(clazz.getSuperclass(), list);
+            }
+        } catch (Exception ex) {
+            //
+        }
+    }
 }

--
Gitblit v1.9.3