From 3136e1a364ebfe11eac057198d30329bc923b4e4 Mon Sep 17 00:00:00 2001 From: Shaun Chyxion Date: Tue, 27 Jun 2017 00:18:42 +0800 Subject: [PATCH] table bug fixes --- .../tigon/mybatis/AndSearchProcessor.java | 8 +++++++- .../chyxion/tigon/mybatis/OrSearchProcessor.java | 14 +++++++++++++- .../java/me/chyxion/tigon/mybatis/Search.java | 16 ++++++++++++---- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/tigon-model/src/main/java/me/chyxion/tigon/mybatis/AndSearchProcessor.java b/tigon-model/src/main/java/me/chyxion/tigon/mybatis/AndSearchProcessor.java index 7d710da..2a50483 100644 --- a/tigon-model/src/main/java/me/chyxion/tigon/mybatis/AndSearchProcessor.java +++ b/tigon-model/src/main/java/me/chyxion/tigon/mybatis/AndSearchProcessor.java @@ -1,5 +1,7 @@ package me.chyxion.tigon.mybatis; +import org.apache.commons.lang3.StringUtils; + /** * @author Donghuang
* donghuang@wacai.com
@@ -20,6 +22,10 @@ class AndSearchProcessor extends AbstractSearchProcessor { */ @Override void doProcess(SearchProcessArgs args) { - args.getResult().addAll(args.getCondition().getSearch().assemble(true)); + final Search search = args.getCondition().getSearch(); + if (StringUtils.isBlank(search.table())) { + search.table(args.getTable()); + } + args.getResult().addAll(search.assemble(true)); } } diff --git a/tigon-model/src/main/java/me/chyxion/tigon/mybatis/OrSearchProcessor.java b/tigon-model/src/main/java/me/chyxion/tigon/mybatis/OrSearchProcessor.java index 39ae3e0..d33af3c 100644 --- a/tigon-model/src/main/java/me/chyxion/tigon/mybatis/OrSearchProcessor.java +++ b/tigon-model/src/main/java/me/chyxion/tigon/mybatis/OrSearchProcessor.java @@ -1,5 +1,7 @@ package me.chyxion.tigon.mybatis; +import org.apache.commons.lang3.StringUtils; + /** * @author Shaun Chyxion
* chyxion@163.com
@@ -7,11 +9,17 @@ package me.chyxion.tigon.mybatis; */ class OrSearchProcessor implements SearchProcessor { + /** + * {@inheritDoc} + */ @Override public boolean accept(SearchProcessArgs args) { return CriterionType.OR.equals(args.getCondition().getType()); } + /** + * {@inheritDoc} + */ @Override public void process(SearchProcessArgs args) { if (args.isHasPrevCol()) { @@ -20,6 +28,10 @@ class OrSearchProcessor implements SearchProcessor { else { args.setHasPrevOrCol(true); } - args.getResult().addAll(args.getCondition().getSearch().assemble(true)); + final Search search = args.getCondition().getSearch(); + if (StringUtils.isBlank(search.table())) { + search.table(args.getTable()); + } + args.getResult().addAll(search.assemble(true)); } } diff --git a/tigon-model/src/main/java/me/chyxion/tigon/mybatis/Search.java b/tigon-model/src/main/java/me/chyxion/tigon/mybatis/Search.java index 55356db..fe5ebe0 100644 --- a/tigon-model/src/main/java/me/chyxion/tigon/mybatis/Search.java +++ b/tigon-model/src/main/java/me/chyxion/tigon/mybatis/Search.java @@ -483,12 +483,20 @@ public class Search implements Serializable { return this; } + /** + * get table + * @return table + */ + String table() { + return this.table; + } + List assemble(boolean subSearch) { List result = new LinkedList(); - SearchProcessArgs args = new SearchProcessArgs(table, result); - for (Criterion condition : criteria) { - args.setCondition(condition); - for (SearchProcessor processor : PROCESSORS) { + final SearchProcessArgs args = new SearchProcessArgs(table, result); + for (final Criterion criterion : criteria) { + args.setCondition(criterion); + for (final SearchProcessor processor : PROCESSORS) { if (processor.accept(args)) { processor.process(args); break;