From 5cf4c8a95a0efe97407b32d11d24f53559a9b46f Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Wed, 19 Oct 2016 10:08:09 +0800 Subject: [PATCH] --- src/org/redkale/source/DataDefaultSource.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/org/redkale/source/DataDefaultSource.java b/src/org/redkale/source/DataDefaultSource.java index d5e26f31b..94d0e1109 100644 --- a/src/org/redkale/source/DataDefaultSource.java +++ b/src/org/redkale/source/DataDefaultSource.java @@ -543,6 +543,7 @@ public final class DataDefaultSource implements DataSource, Function Map queryColumnMap(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, FilterNode node) { + final EntityInfo info = loadEntityInfo(entityClass); final Connection conn = createReadSQLConnection(); try { - final EntityInfo info = loadEntityInfo(entityClass); final EntityCache cache = info.getCache(); if (cache != null && (info.isVirtualEntity() || cache.isFullLoaded())) { if (node == null || node.isCacheUseable(this)) { @@ -1133,6 +1136,7 @@ public final class DataDefaultSource implements DataSource, Function(); throw new RuntimeException(e); } finally { if (conn != null) closeSQLConnection(conn); @@ -1174,6 +1178,9 @@ public final class DataDefaultSource implements DataSource, Function List queryColumnList(final String selectedColumn, final Class clazz, final FilterBean bean) { - return (List) queryColumnSheet(selectedColumn, clazz, null, bean).list(true); + return queryColumnList(selectedColumn, clazz, FilterNodeBean.createFilterNode(bean)); } @Override public List queryColumnList(final String selectedColumn, final Class clazz, final FilterNode node) { - return (List) queryColumnSheet(selectedColumn, clazz, null, node).list(true); + return (List) queryColumnSheet(false, selectedColumn, clazz, null, node).list(true); } /** @@ -1341,7 +1351,11 @@ public final class DataDefaultSource implements DataSource, Function Sheet queryColumnSheet(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node) { - Sheet sheet = querySheet(true, true, clazz, SelectColumn.createIncludes(selectedColumn), flipper, node); + return queryColumnSheet(true, selectedColumn, clazz, flipper, node); + } + + private Sheet queryColumnSheet(final boolean needtotal, final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node) { + Sheet sheet = querySheet(true, needtotal, clazz, SelectColumn.createIncludes(selectedColumn), flipper, node); final Sheet rs = new Sheet<>(); if (sheet.isEmpty()) return rs; rs.setTotal(sheet.getTotal()); @@ -1524,6 +1538,9 @@ public final class DataDefaultSource implements DataSource, Function(total, list); + } catch (SQLException se) { + if (info.tableStrategy != null && info.tablenotexistSqlstates.contains(';' + se.getSQLState() + ';')) return new Sheet<>(); + throw new RuntimeException(se); } catch (Exception ex) { throw new RuntimeException(ex); } finally {