public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { var columnNames = CriterionUtil.GetColumnNamesForSimpleExpression( null, _projection, criteriaQuery, criteria, this, string.Empty); var sqlBuilder = new SqlStringBuilder(4 * columnNames.Length); for (var i = 0; i < columnNames.Length; i++) { if (i > 0) { sqlBuilder.Add(" and "); } sqlBuilder.Add(columnNames[i]); } return(sqlBuilder.ToSqlString()); }
public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { var columns = CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria); if (columns.Length != 1) { throw new HibernateException( "IsDescendantOf may only be used with single-column properties / projections."); } var lhs = new SqlStringBuilder(6); lhs.Add(columns[0]); lhs.Add(".IsDescendantOf("); lhs.Add(criteriaQuery.NewQueryParameter(_typedValue).Single()); lhs.Add(") = 1"); return(lhs.ToSqlString()); }
public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary <string, IFilter> enabledFilters) { var result = new SqlStringBuilder(); var columnNames = CriterionUtil.GetColumnNames(null, _projection, criteriaQuery, criteria, enabledFilters); for (int columnIndex = 0; columnIndex < columnNames.Length; columnIndex++) { SqlString columnName = columnNames[columnIndex]; if (columnIndex > 0) { result.Add(" and "); } result.Add(columnName).Add(" in (").Add($"SELECT {_temporaryTableProperty} FROM {_temporaryTable}") .Add(")"); } return(result.ToSqlString()); }
public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary <string, IFilter> enabledFilters) { SqlString[] columns = CriterionUtil.GetColumnNames(null, _projection, criteriaQuery, criteria, enabledFilters); if (columns.Length != 1) { throw new HibernateException("Like may only be used with single-column properties / projections."); } var value = SqlStringHelper.RemoveAsAliasesFromSql(_value.ToSqlString(criteria, 0, criteriaQuery, enabledFilters)); var dialect = criteriaQuery.Factory.Dialect; var builder = new SqlStringBuilder(8) .Add(dialect.LowercaseFunction) .Add(StringHelper.OpenParen) .Add(columns[0]) .Add(StringHelper.ClosedParen) .Add(" like ") .Add(dialect.LowercaseFunction) .Add(StringHelper.OpenParen) .Add(value) .Add(StringHelper.ClosedParen); return(builder.ToSqlString()); }
public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary <string, IFilter> enabledFilters) { if (_values.Length == 0) { return(new SqlString("1=0")); } var result = new SqlStringBuilder(); var columnNames = CriterionUtil.GetColumnNames(null, _projection, criteriaQuery, criteria, enabledFilters); for (int columnIndex = 0; columnIndex < columnNames.Length; columnIndex++) { SqlString columnName = columnNames[columnIndex]; if (columnIndex > 0) { result.Add(" and "); } result.Add(columnName).Add(" in (").Add(StringHelper.ToString(_values)).Add(")"); } return(result.ToSqlString()); }
public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { var columnNames = CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria); var dialect = criteriaQuery.Factory.Dialect; if (columnNames.Length != 1) { throw new HibernateException("accent insensitive like may only be used with single-column properties"); } var parameter = criteriaQuery.NewQueryParameter(GetParameterTypedValue(criteria, criteriaQuery)).Single(); if (dialect is Oracle8iDialect) { return(GenerateOracleExpression(columnNames[0], dialect, parameter).ToSqlString()); } if (dialect is MsSql2000Dialect) { return(GenerateMsSqlExpression(columnNames[0], parameter).ToSqlString()); } throw new NotSupportedException(); }
private TypedValue GetParameterTypedValue(ICriteria criteria, ICriteriaQuery criteriaQuery) { return(CriterionUtil.GetTypedValues(criteriaQuery, criteria, _projection, null).Single()); }