Revision 47318
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