Revision 40916 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/jdbc/JDBCStoreProvider.java
JDBCStoreProvider.java | ||
---|---|---|
529 | 529 |
.getDefaultFeatureType()); |
530 | 530 |
} |
531 | 531 |
|
532 |
/** |
|
533 |
* Return "is null" expression for current provider<br/> |
|
534 |
*/ |
|
535 |
protected String getIsNullExpression() { |
|
536 |
return "is null"; |
|
537 |
} |
|
538 |
|
|
532 | 539 |
@Override |
533 | 540 |
protected FeatureProvider internalGetFeatureProviderByReference( |
534 | 541 |
FeatureReferenceProviderServices reference, |
... | ... | |
542 | 549 |
List<Object> values = new ArrayList<Object>(); |
543 | 550 |
|
544 | 551 |
int i; |
545 |
for (i = 0; i < pk.length - 1; i++) { |
|
546 |
values.add( |
|
547 |
helper.dalValueToJDBC(pk[i], |
|
548 |
reference.getKeyValue(pk[i].getName()))); |
|
549 |
filter.append(helper.getSqlFieldName(pk[i])); |
|
550 |
filter.append(" = ? AND "); |
|
552 |
Object value; |
|
553 |
for (i = 0; i < pk.length; i++) { |
|
554 |
value = reference.getKeyValue(pk[i].getName()); |
|
555 |
filter.append(helper.getSqlFieldName(pk[i])); |
|
556 |
if (value == null) { |
|
557 |
filter.append(" "); |
|
558 |
filter.append(getIsNullExpression()); |
|
559 |
filter.append(""); |
|
560 |
} else { |
|
561 |
values.add(helper.dalValueToJDBC(pk[i], value)); |
|
562 |
filter.append(" = ? "); |
|
563 |
} |
|
564 |
if (i < pk.length -1) { |
|
565 |
filter.append(" AND "); |
|
566 |
} |
|
551 | 567 |
} |
552 |
values.add(helper.dalValueToJDBC(pk[i], |
|
553 |
reference.getKeyValue(pk[i].getName()))); |
|
554 |
filter.append(helper.getSqlFieldName(pk[i])); |
|
555 |
filter.append(" = ? "); |
|
556 |
|
|
557 | 568 |
String sql = compoundSelect(featureType, filter.toString(), null, 1, 0); |
558 | 569 |
|
559 | 570 |
FeatureProvider data; |
... | ... | |
819 | 830 |
toAdd = false; |
820 | 831 |
break; |
821 | 832 |
} |
822 |
if (toAdd) { |
|
823 |
sql.append(", "); |
|
824 |
sql.append(helper.getSqlFieldName(pkFields[i])); |
|
825 |
} |
|
826 | 833 |
} |
834 |
if (toAdd) { |
|
835 |
sql.append(", "); |
|
836 |
sql.append(helper.getSqlFieldName(pkFields[i])); |
|
837 |
} |
|
827 | 838 |
} |
828 | 839 |
sql.append(' '); |
829 | 840 |
} |
Also available in: Unified diff