encodeIDConditionIN method
Implementation
@override
FutureOr<EncodingContext> encodeIDConditionIN(
ConditionIdIN c, EncodingContext context) {
var tableName = context.tableNameOrEntityName;
var tableAlias = context.resolveEntityAlias(tableName);
var schemeProvider = this.schemeProvider;
if (schemeProvider == null) {
var idKey = context.addEncodingParameter('id', c.idsValues);
var q = sqlElementQuote;
var tableKey = '$q$tableAlias$q.$q$idKey$q';
return encodeConditionValuesWithOperator(
context, int, idKey, tableKey, 'IN', c.idsValues, true);
} else {
var tableSchemeRet = schemeProvider.getTableScheme(tableName);
return tableSchemeRet.resolveMapped((tableScheme) {
if (tableScheme == null) {
var errorMsg =
"Can't find `TableScheme` for entity/table: $tableName";
_log.severe(errorMsg);
throw StateError(errorMsg);
}
var idFieldName = tableScheme.idFieldName ?? 'id';
var idType = tableScheme.fieldsTypes[idFieldName] ?? int;
var idKey = context.addEncodingParameter(idFieldName, c.idsValues);
var q = sqlElementQuote;
var tableKey = '$q$tableAlias$q.$q$idKey$q';
return encodeConditionValuesWithOperator(
context, idType, idFieldName, tableKey, 'IN', c.idsValues, true);
});
}
}