private boolean skipInsertField(FieldDefinition field, Object obj) {
		if (field.isAutoIncrement) {
			Object value = getValue(obj, field);
			if (field.isPrimitive) {
				// skip uninitialized primitive autoincrement values
				if (value.toString().equals("0")) {
					return true;
				}
			} else if (value == null) {
				// skip null object autoincrement values
				return true;
			}
		} else {
			// conditionally skip insert of null
			Object value = getValue(obj, field);
			if (value == null) {
				if (field.nullable) {
					// skip null assignment, field is nullable
					return true;
				} else if (StringUtils.isNullOrEmpty(field.defaultValue)) {
					IciqlLogger.warn("no default value, skipping null insert assignment for {0}.{1}",
							tableName, field.columnName);
					return true;
				}
			}
		}
		return false;
	}