diff --git a/test/com/wentch/redkale/source/FilterNodeTest.java b/test/com/wentch/redkale/source/FilterNodeTest.java index 346e7296e..3d83cf6fc 100644 --- a/test/com/wentch/redkale/source/FilterNodeTest.java +++ b/test/com/wentch/redkale/source/FilterNodeTest.java @@ -26,35 +26,38 @@ public class FilterNodeTest { final EntityInfo typeEntity = EntityInfo.load(CarTypeTestTable.class, 0, false, (t) -> CarTypeTestTable.createList()); final CarTestBean bean = new CarTestBean(); - bean.carid = 1; + bean.carid = 70002; bean.username = "用户1"; bean.createtime = 500; bean.typename = "法拉利"; FilterNode joinNode1 = FilterJoinNode.create(UserTestTable.class, new String[]{"userid", "username"}, "username", LIKE, bean.username) .or(FilterJoinNode.create(UserTestTable.class, new String[]{"userid", "username"}, "createtime", GREATERTHAN, bean.createtime)); FilterNode joinNode2 = FilterJoinNode.create(CarTypeTestTable.class, "cartype", "typename", LIKE, bean.typename); - FilterNode node = FilterNode.create("carid", GREATERTHAN, bean.carid).and(joinNode1).or(joinNode2); + FilterNode node = CarTestBean.caridTransient() ? (joinNode2.or(joinNode1)) : FilterNode.create("carid", GREATERTHAN, bean.carid).and(joinNode1).or(joinNode2); FilterNode beanNode = FilterNodeBean.createFilterNode(bean); - System.out.println("bean = " + beanNode); - System.out.println("node = " + node); - Map joinTabalis = node.getJoinTabalis(); - CharSequence joinsql = node.createSQLJoin(func, joinTabalis, carEntity); - CharSequence where = node.createSQLExpress(carEntity, joinTabalis); - System.out.println("SELECT a.* FROM " + CarTestTable.class.getSimpleName().toLowerCase() + " a" + (joinsql == null ? "" : joinsql) + " WHERE " + where); + System.out.println("node.string = " + node); + System.out.println("bean.string = " + beanNode); + Map nodeJoinTabalis = node.getJoinTabalis(); + Map beanJoinTabalis = beanNode.getJoinTabalis(); + CharSequence nodeJoinsql = node.createSQLJoin(func, nodeJoinTabalis, carEntity); + CharSequence beanJoinsql = beanNode.createSQLJoin(func, beanJoinTabalis, carEntity); + CharSequence nodeWhere = node.createSQLExpress(carEntity, nodeJoinTabalis); + CharSequence beanWhere = beanNode.createSQLExpress(carEntity, beanJoinTabalis); + System.out.println("node.sql = SELECT a.* FROM " + CarTestTable.class.getSimpleName().toLowerCase() + " a" + (nodeJoinsql == null ? "" : nodeJoinsql) + " WHERE " + nodeWhere); + System.out.println("bean.sql = SELECT a.* FROM " + CarTestTable.class.getSimpleName().toLowerCase() + " a" + (beanJoinsql == null ? "" : beanJoinsql) + " WHERE " + beanWhere); assert node.isCacheUseable(func) : "isCacheUseable 应该是true"; - assert beanNode.isCacheUseable(func): "isCacheUseable 应该是true"; - System.out.println("isCacheUseable = " + node.isCacheUseable(func)); //应该是true - System.out.println(node.createPredicate(carEntity.getCache())); - System.out.println(beanNode.createPredicate(carEntity.getCache())); - System.out.println(carEntity.getCache().querySheet(null, new Flipper(), node)); - System.out.println(carEntity.getCache().querySheet(null, new Flipper(), beanNode)); + assert beanNode.isCacheUseable(func) : "isCacheUseable 应该是true"; + System.out.println("node.Predicate = " + node.createPredicate(carEntity.getCache())); + System.out.println("bean.Predicate = " + beanNode.createPredicate(carEntity.getCache())); + System.out.println("node.sheet = " +carEntity.getCache().querySheet(null, new Flipper(), node)); + System.out.println("bean.sheet = " +carEntity.getCache().querySheet(null, new Flipper(), beanNode)); } public static class CarTestBean implements FilterBean { @FilterGroup("[OR].[AND]a") @FilterColumn(express = GREATERTHAN) - //@Transient + @Transient public long carid; @FilterGroup("[OR].[AND]a.[OR]c") @@ -76,6 +79,15 @@ public class FilterNodeTest { public String toString() { return JsonFactory.root().getConvert().convertTo(this); } + + public static boolean caridTransient() { + try { + return CarTestBean.class.getDeclaredField("carid").getAnnotation(Transient.class) != null; + } catch (Exception e) { + e.printStackTrace(); + return true; + } + } } @AutoLoad