Line 22... |
Line 22... |
22 |
import org.openconcerto.sql.model.SQLRowAccessor;
|
22 |
import org.openconcerto.sql.model.SQLRowAccessor;
|
23 |
import org.openconcerto.sql.model.SQLRowListRSH;
|
23 |
import org.openconcerto.sql.model.SQLRowListRSH;
|
24 |
import org.openconcerto.sql.model.SQLRowValues;
|
24 |
import org.openconcerto.sql.model.SQLRowValues;
|
25 |
import org.openconcerto.sql.model.SQLRowValuesListFetcher;
|
25 |
import org.openconcerto.sql.model.SQLRowValuesListFetcher;
|
26 |
import org.openconcerto.sql.model.SQLSelect;
|
26 |
import org.openconcerto.sql.model.SQLSelect;
|
- |
|
27 |
import org.openconcerto.sql.model.SQLSelectJoin;
|
27 |
import org.openconcerto.sql.model.SQLTable;
|
28 |
import org.openconcerto.sql.model.SQLTable;
|
28 |
import org.openconcerto.sql.model.Where;
|
29 |
import org.openconcerto.sql.model.Where;
|
29 |
import org.openconcerto.utils.CompareUtils;
|
30 |
import org.openconcerto.utils.CompareUtils;
|
30 |
import org.openconcerto.utils.ListMap;
|
31 |
import org.openconcerto.utils.ListMap;
|
31 |
import org.openconcerto.utils.cc.ITransformer;
|
32 |
import org.openconcerto.utils.cc.ITransformer;
|
Line 299... |
Line 300... |
299 |
|
300 |
|
300 |
private void addSelectOrder(final SQLTable tableForeign, final String orderBy, SQLSelect sel) {
|
301 |
private void addSelectOrder(final SQLTable tableForeign, final String orderBy, SQLSelect sel) {
|
301 |
if (orderBy != null && orderBy.contains(".")) {
|
302 |
if (orderBy != null && orderBy.contains(".")) {
|
302 |
String fieldRefTable = orderBy.substring(0, orderBy.indexOf('.'));
|
303 |
String fieldRefTable = orderBy.substring(0, orderBy.indexOf('.'));
|
303 |
String field = orderBy.substring(orderBy.indexOf('.') + 1, orderBy.length());
|
304 |
String field = orderBy.substring(orderBy.indexOf('.') + 1, orderBy.length());
|
- |
|
305 |
if (sel.getJoin(tableForeign.getField(fieldRefTable)) == null) {
|
304 |
sel.addJoin("LEFT", sel.getAlias(tableForeign).getField(fieldRefTable));
|
306 |
sel.addJoin("LEFT", sel.getAlias(tableForeign).getField(fieldRefTable));
|
- |
|
307 |
}
|
- |
|
308 |
SQLSelectJoin join = sel.getJoin(tableForeign.getField(fieldRefTable));
|
305 |
sel.addFieldOrder(sel.getAlias(tableForeign.getForeignTable(fieldRefTable)).getField(field));
|
309 |
sel.addFieldOrder(join.getJoinedTable().getField(field));
|
306 |
} else {
|
310 |
} else {
|
307 |
sel.addFieldOrder(tableForeign.getOrderField());
|
311 |
sel.addFieldOrder(tableForeign.getOrderField());
|
308 |
}
|
312 |
}
|
309 |
}
|
313 |
}
|
310 |
|
314 |
|