This commit is contained in:
@@ -1086,7 +1086,7 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
|
||||
if (node == null && bean != null) node = loadFilterBeanNode(bean.getClass());
|
||||
final EntityCache<T> cache = info.getCache();
|
||||
if (cache != null && (info.isVirtualEntity() || cache.isFullLoaded())) {
|
||||
if (node == null || node.isCacheUseable()) {
|
||||
if (node == null || node.isCacheUseable(this)) {
|
||||
return cache.getNumberResult(reckon, column, node, bean);
|
||||
}
|
||||
}
|
||||
@@ -1134,7 +1134,7 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
|
||||
if (node == null && bean != null) node = loadFilterBeanNode(bean.getClass());
|
||||
final EntityCache cache = info.getCache();
|
||||
if (cache != null && (info.isVirtualEntity() || cache.isFullLoaded())) {
|
||||
if (node == null || node.isCacheUseable()) {
|
||||
if (node == null || node.isCacheUseable(this)) {
|
||||
return cache.getMapResult(keyColumn, reckon, reckonColumn, node, bean);
|
||||
}
|
||||
}
|
||||
@@ -1219,7 +1219,7 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
|
||||
final EntityInfo<T> info = loadEntityInfo(clazz);
|
||||
final EntityCache<T> cache = info.getCache();
|
||||
if (node == null && bean != null) node = loadFilterBeanNode(bean.getClass());
|
||||
if (cache != null && cache.isFullLoaded() && (node == null || node.isCacheUseable())) return cache.find(selects, node, bean);
|
||||
if (cache != null && cache.isFullLoaded() && (node == null || node.isCacheUseable(this))) return cache.find(selects, node, bean);
|
||||
|
||||
final Connection conn = createReadSQLConnection();
|
||||
try {
|
||||
@@ -1278,7 +1278,7 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
|
||||
final EntityInfo<T> info = loadEntityInfo(clazz);
|
||||
final EntityCache<T> cache = info.getCache();
|
||||
if (node == null && bean != null) node = loadFilterBeanNode(bean.getClass());
|
||||
if (cache != null && cache.isFullLoaded() && (node == null || node.isCacheUseable())) return cache.exists(node, bean);
|
||||
if (cache != null && cache.isFullLoaded() && (node == null || node.isCacheUseable(this))) return cache.exists(node, bean);
|
||||
|
||||
final Connection conn = createReadSQLConnection();
|
||||
try {
|
||||
@@ -1526,7 +1526,7 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
|
||||
final EntityCache<T> cache = info.getCache();
|
||||
if (node == null && bean != null) node = loadFilterBeanNode(bean.getClass());
|
||||
if (readcache && cache != null) {
|
||||
if (node == null || node.isCacheUseable()) {
|
||||
if (node == null || node.isCacheUseable(this)) {
|
||||
if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(clazz.getSimpleName() + " cache query predicate = " + (node == null ? null : node.createPredicate(cache, bean)));
|
||||
Sheet<T> sheet = cache.querySheet(needtotal, selects, flipper, node, bean);
|
||||
if (!sheet.isEmpty() || info.isVirtualEntity() || cache.isFullLoaded()) return sheet;
|
||||
|
||||
@@ -372,7 +372,7 @@ final class FilterBeanNode extends FilterNode {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isCacheUseable() {
|
||||
protected boolean isCacheUseable(final Function<Class, EntityInfo> entityApplyer) {
|
||||
return joinallcached;
|
||||
}
|
||||
|
||||
|
||||
@@ -149,9 +149,14 @@ public class FilterNode {
|
||||
/**
|
||||
* 该方法需要重载
|
||||
*
|
||||
* @param entityApplyer
|
||||
* @return
|
||||
*/
|
||||
protected boolean isCacheUseable() {
|
||||
protected boolean isCacheUseable(final Function<Class, EntityInfo> entityApplyer) {
|
||||
if (this.nodes == null) return true;
|
||||
for (FilterNode node : this.nodes) {
|
||||
if (!node.isCacheUseable(entityApplyer)) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -165,7 +170,7 @@ public class FilterNode {
|
||||
* @return
|
||||
*/
|
||||
protected <T> CharSequence createSQLExpress(final Function<Class, EntityInfo> func, final EntityInfo<T> info, final FilterBean bean) {
|
||||
CharSequence sb0 = createElementSQLExpress(info, bean);
|
||||
CharSequence sb0 = createElementSQLExpress(info, getTabalis(), bean);
|
||||
if (this.nodes == null) return sb0;
|
||||
final StringBuilder rs = new StringBuilder();
|
||||
rs.append('(');
|
||||
@@ -194,9 +199,9 @@ public class FilterNode {
|
||||
return new FilterNode(column, express, value);
|
||||
}
|
||||
|
||||
protected final <T> CharSequence createElementSQLExpress(final EntityInfo<T> info, final FilterBean bean) {
|
||||
protected final <T> CharSequence createElementSQLExpress(final EntityInfo<T> info, String talis, final FilterBean bean) {
|
||||
if (column == null) return null;
|
||||
final String talis = getTabalis() == null ? "a" : getTabalis();
|
||||
if (talis == null) talis = "a";
|
||||
if (express == ISNULL || express == ISNOTNULL) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(info.getSQLColumn(talis, column)).append(' ').append(express.value());
|
||||
|
||||
Reference in New Issue
Block a user