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

View differences:

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