Revision 47318

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/feature/spi/SQLBuilderBase.java
723 723
        public Value getCondition() {
724 724
            return this.expression;
725 725
        }
726
        
727
        @Override
728
        public void accept(Visitor visitor, VisitorFilter filter) {
729
            boolean visitChildren = true;
730
            if (filter==null || filter.accept(this)) {
731
                visitor.visit(this);
732
            } else {
733
                visitChildren = !filter.skipChildren();
734
            }
735
            if(visitChildren){
736
                if (this.expression != null) {
737
                    this.expression.accept(visitor, filter);
738
                }
739
            }
740
        }
741

  
726 742
    }
727 743
    
728 744
    public class FromBuilderBase
......
783 799
                if (this.tableName != null) {
784 800
                    this.tableName.accept(visitor, filter);
785 801
                }
802
                if(this.joins != null) {
803
                    for (JoinBuilder join : joins) {
804
                        join.accept(visitor, filter);
805
                    }
806
                }
786 807
            }
787 808
        }
788 809

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/test/java/org/gvsig/fmap/dal/store/jdbc2/SQLBuilderTest.java
603 603
                sqlbuilder.toString()
604 604
        );
605 605
        assertEquals(
606
                "[DESCRIPTION, DESCRIPTION, ID, NAME, TYPE]",
606
                "[DESCRIPTION, DESCRIPTION, ID, ID, ID, NAME, PHONE_TYPE, TYPE]",
607 607
                ArrayUtils.toString(sqlbuilder.variables_names())
608 608
        );
609 609
        assertEquals(
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCHelperBase.java
62 62
import org.gvsig.fmap.dal.SQLBuilder;
63 63
import org.gvsig.fmap.dal.SQLBuilder.Column;
64 64
import static org.gvsig.fmap.dal.SQLBuilder.PROP_ADD_TABLE_NAME_TO_COLUMNS;
65
import static org.gvsig.fmap.dal.SQLBuilder.PROP_FEATURE_TYPE;
66
import static org.gvsig.fmap.dal.SQLBuilder.PROP_JDBCHELPER;
67
import static org.gvsig.fmap.dal.SQLBuilder.PROP_QUERY;
65 68
import org.gvsig.fmap.dal.SQLBuilder.SelectBuilder;
66 69
import org.gvsig.fmap.dal.exception.DataException;
67 70
import org.gvsig.fmap.dal.exception.InitializeException;
......
1009 1012
                  .name(table.getName());
1010 1013
          
1011 1014
          if (!usedLeftJoins.contains(foreingTable.getName())) {
1015
            Column v = sqlbuilder.column(mainTable, columnNameLocal);
1016
            v.setProperty(PROP_FEATURE_TYPE, type);
1017
            v.setProperty(PROP_JDBCHELPER, this);
1018
            v.setProperty(PROP_QUERY, sqlbuilder.select().getProperty(PROP_QUERY));
1019
            
1012 1020
            sqlbuilder.select().from()
1013 1021
                    .left_join(
1014 1022
                            foreingTable,
1015 1023
                            expbuilder.eq(
1016
                                    sqlbuilder.column(mainTable, columnNameLocal),
1024
                                    v,
1017 1025
                                    sqlbuilder.column(foreingTable, foreingKey.getCodeName())
1018 1026
                            )
1019 1027
                    );

Also available in: Unified diff