Skip to main content
Version: Next

UpdateQueryBuilder <T, RootAlias, Context>

Hierarchy

Index

Properties

readonlyinherited__subquery

__subquery: true

inheritedalias

alias: string

inheritedhelper

helper: QueryBuilderHelper

inheritedmainAlias

mainAlias: Alias<T>

inheritedtype

type: QueryType

Methods

inheritedaddSelect

  • addSelect<F>(fields): SelectQueryBuilder<T, RootAlias, never, Context, ExtractRawAliases<F extends readonly unknown[] ? F<F> : [F]>, * | ExtractRootFields<F extends readonly U[] ? U & string : F & string, RootAlias, Context>>
  • Adds fields to an existing SELECT query.


    Parameters

    • fields: F

    Returns SelectQueryBuilder<T, RootAlias, never, Context, ExtractRawAliases<F extends readonly unknown[] ? F<F> : [F]>, * | ExtractRootFields<F extends readonly U[] ? U & string : F & string, RootAlias, Context>>

inheritedandHaving

  • Parameters

    • optionalcond: string | QBFilterQuery<T, RootAlias, Context, never>
    • optionalparams: any[]

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedandOrderBy

  • Adds additional ORDER BY clause without replacing existing order.


    Parameters

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedandWhere

  • andWhere(cond): this
  • andWhere(cond, params): this
  • Adds an AND WHERE clause to the query using an object condition.

    @example
    qb.where({ status: 'active' }).andWhere({ role: 'admin' });
    qb.where({ name: 'John' }).andWhere({ 'b.title': 'test' });

    Parameters

    Returns this

inheritedapplyFilters

  • applyFilters(filterOptions): Promise<void>
  • Apply filters to the QB where condition.


    Parameters

    Returns Promise<void>

inheritedas

  • as(alias): NativeQueryBuilder
  • as<T>(targetEntity, alias): NativeQueryBuilder
  • Returns native query builder instance with sub-query aliased with given alias.


    Parameters

    • alias: string

    Returns NativeQueryBuilder

inheritedcache

  • cache(config): this
  • Parameters

    • config: number | boolean | [string, number] = true

    Returns this

inheritedclone

  • clone(reset, preserve): QueryBuilder<T, RootAlias, never, Context, never, *>
  • Parameters

    • optionalreset: boolean | string[]
    • optionalpreserve: string[]

    Returns QueryBuilder<T, RootAlias, never, Context, never, *>

inheritedcomment

  • comment(comment): this
  • Prepend comment to the sql query using the syntax /* ... *&#8205;/. Some characters are forbidden such as /*, *&#8205;/ and ?.


    Parameters

    • comment: undefined | string | string[]

    Returns this

inheritedcount

  • Creates a COUNT query to count matching rows.

    @example
    const count = await em.createQueryBuilder(User)
    .count()
    .where({ isActive: true })
    .execute('get');

    Parameters

    • optionalfield: F | F[]
    • distinct: boolean = false

    Returns CountQueryBuilder<T>

inheriteddelete

  • Creates a DELETE query. Use where() to specify which rows to delete.

    @example
    await em.createQueryBuilder(User)
    .delete()
    .where({ id: 1 })
    .execute();

    // Or pass the condition directly
    await em.createQueryBuilder(User)
    .delete({ isActive: false })
    .execute();

    Parameters

    Returns DeleteQueryBuilder<T, RootAlias, Context>

inheriteddistinct

  • Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheriteddistinctOn

  • postgres only


    Parameters

    • fields: F

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedexecute

  • execute<Result>(method, mapResults): Promise<Result>
  • Executes this QB and returns the raw results, mapped to the property names (unless disabled via last parameter). Use method to specify what kind of result you want to get (array/single/meta).


    Parameters

    • optionalmethod: get | all | run
    • optionalmapResults: boolean

    Returns Promise<Result>

inheritedfrom

  • from<Entity>(target, aliasName): SelectQueryBuilder<Entity, RootAlias, never, Context, never, *>
  • from<Entity>(target): SelectQueryBuilder<Entity, RootAlias, never, Context, never, *>
  • Specifies FROM which entity's table select/update/delete will be executed, removing all previously set FROM-s. Allows setting a main string alias of the selection data.


    Parameters

    • target: QueryBuilder<Entity, never, never, never, never, *>
    • optionalaliasName: string

    Returns SelectQueryBuilder<Entity, RootAlias, never, Context, never, *>

inheritedgetCount

  • getCount<F>(field, distinct): Promise<number>
  • Executes count query (without offset and limit), returning total count of results


    Parameters

    • optionalfield: F | F[]
    • optionaldistinct: boolean

    Returns Promise<number>

inheritedgetFormattedQuery

  • getFormattedQuery(): string
  • Returns raw interpolated query string with all the parameters inlined.


    Returns string

inheritedgetLoggerContext

  • getLoggerContext<T>(): T
  • Gets logger context for this query builder.


    Returns T

inheritedgetNativeQuery

  • getNativeQuery(processVirtualEntity): NativeQueryBuilder
  • Parameters

    • processVirtualEntity: boolean = true

    Returns NativeQueryBuilder

inheritedgetParams

  • getParams(): readonly unknown[]
  • Returns the list of all parameters for this query.


    Returns readonly unknown[]

inheritedgetQuery

  • getQuery(): string
  • Returns the query with parameters as wildcards.


    Returns string

inheritedgetResultAndCount

  • getResultAndCount(): Promise<[Loaded<T, never, *>[], number]>
  • Executes the query, returning both array of results and total count query (without offset and limit).


    Returns Promise<[Loaded<T, never, *>[], number]>

inheritedgroupBy

  • Adds a GROUP BY clause to the query.

    @example
    qb.select([raw('count(*) as count'), 'status'])
    .groupBy('status');

    Parameters

    • fields: F

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedhasFlag

  • hasFlag(flag): boolean
  • Parameters

    Returns boolean

inheritedhaving

  • having(cond, params, operator): SelectQueryBuilder<T, RootAlias, never, Context, never, *>
  • Adds a HAVING clause to the query, typically used with GROUP BY.

    @example
    qb.select([raw('count(*) as count'), 'status'])
    .groupBy('status')
    .having({ count: { $gt: 5 } });

    Parameters

    • cond: string | QBFilterQuery<T, RootAlias, Context, never> = {}
    • optionalparams: any[]
    • optionaloperator: $and | $or

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedhintComment

  • hintComment(comment): this
  • Add hints to the query using comment-like syntax /*+ ... *&#8205;/. MySQL and Oracle use this syntax for optimizer hints. Also various DB proxies and routers use this syntax to pass hints to alter their behavior. In other dialects the hints are ignored as simple comments.


    Parameters

    • comment: undefined | string | string[]

    Returns this

inheritedignore

  • ignore(): this
  • Returns this

inheritedindexHint

  • indexHint(sql): this
  • Adds index hint to the FROM clause.


    Parameters

    • sql: undefined | string

    Returns this

inheritedinnerJoin

  • Adds an INNER JOIN clause to the query for an entity relation.


    Parameters

    • field: Field
    • alias: Alias
    • optionalcond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias>
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, never, ModifyContext<T, Context, Field, Alias, false>, never, *>

inheritedinnerJoinAndSelect

  • innerJoinAndSelect<Field, Alias, JoinFields>(field, alias, cond, fields, schema): SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>
  • Parameters

    • field: Field | [Field, RawQueryFragment<string> | QueryBuilder<any, never, never, never, never, *>]
    • alias: Alias
    • cond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias> = ...
    • optionalfields: JoinFields
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>

inheritedinnerJoinLateral

  • Parameters

    • field: RawQueryFragment<string> | QueryBuilder<any, never, never, never, never, *>
    • alias: Alias
    • cond: RawJoinCondition = {}
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, never, ModifyContext<T, Context, string, Alias, false>, never, *>

inheritedinnerJoinLateralAndSelect

  • innerJoinLateralAndSelect<Field, Alias, JoinFields>(field, alias, cond, fields, schema): SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>
  • Parameters

    • field: [Field, RawQueryFragment<string> | QueryBuilder<any, never, never, never, never, *>]
    • alias: Alias
    • cond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias> = ...
    • optionalfields: JoinFields
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>

inheritedinsert

  • Creates an INSERT query with the given data.

    @example
    await em.createQueryBuilder(User)
    .insert({ name: 'John', email: 'john@example.com' })
    .execute();

    // Bulk insert
    await em.createQueryBuilder(User)
    .insert([{ name: 'John' }, { name: 'Jane' }])
    .execute();

    Parameters

    Returns InsertQueryBuilder<T, RootAlias, Context>

inheritedjoin

  • Adds a JOIN clause to the query for an entity relation.

    @example
    const qb = em.createQueryBuilder(Book, 'b');
    qb.select('*')
    .join('b.author', 'a')
    .where({ 'a.name': 'John' });

    Parameters

    • field: Field
    • alias: Alias
    • optionalcond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias>
    • optionaltype: JoinType
    • optionalpath: string
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, never, ModifyContext<T, Context, Field, Alias, false>, never, *>

inheritedjoinAndSelect

  • joinAndSelect<Field, Alias, JoinFields>(field, alias, cond, type, path, fields, schema): SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>
  • Adds a JOIN clause and automatically selects the joined entity's fields. This is useful for eager loading related entities.

    @example
    const qb = em.createQueryBuilder(Book, 'b');
    qb.select('*')
    .joinAndSelect('b.author', 'a')
    .where({ 'a.name': 'John' });

    Parameters

    • field: Field | [Field, RawQueryFragment<string> | QueryBuilder<any, never, never, never, never, *>]
    • alias: Alias
    • cond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias> = ...
    • type: JoinType = JoinType.innerJoin
    • optionalpath: string
    • optionalfields: JoinFields
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>

inheritedleftJoin

  • Adds a LEFT JOIN clause to the query for an entity relation.


    Parameters

    • field: Field
    • alias: Alias
    • optionalcond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias>
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, never, ModifyContext<T, Context, Field, Alias, false>, never, *>

inheritedleftJoinAndSelect

  • leftJoinAndSelect<Field, Alias, JoinFields>(field, alias, cond, fields, schema): SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>
  • Parameters

    • field: Field | [Field, RawQueryFragment<string> | QueryBuilder<any, never, never, never, never, *>]
    • alias: Alias
    • cond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias> = ...
    • optionalfields: JoinFields
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>

inheritedleftJoinLateral

  • Parameters

    • field: RawQueryFragment<string> | QueryBuilder<any, never, never, never, never, *>
    • alias: Alias
    • cond: RawJoinCondition = {}
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, never, ModifyContext<T, Context, string, Alias, false>, never, *>

inheritedleftJoinLateralAndSelect

  • leftJoinLateralAndSelect<Field, Alias, JoinFields>(field, alias, cond, fields, schema): SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>
  • Parameters

    • field: [Field, RawQueryFragment<string> | QueryBuilder<any, never, never, never, never, *>]
    • alias: Alias
    • cond: JoinCondition<ExpandProperty<GetType<T, Context, Field>[GetPropName<Field> & keyof GetType<T, Context, Field>]>, Alias> = ...
    • optionalfields: JoinFields
    • optionalschema: string

    Returns SelectQueryBuilder<T, RootAlias, (GetAlias<Field> extends Alias ? IsNever<Alias, true, false> extends true ? GetPropName<Field> : Alias extends RootAlias ? GetPropName<Field> : Alias extends keyof Context ? Context[Alias<Alias>] extends [Path, ...any[]] ? `${Path & string}.${GetPropName<Field>}` : GetPropName<Field> : GetPropName<Field> : GetPropName<Field>) & {}, ModifyContext<T, Context, Field, Alias, true>, never, ModifyFields<*, RootAlias, Context, Field, Alias, JoinFields>>

inheritedlimit

  • Sets a LIMIT clause to restrict the number of results.

    @example
    qb.select('*').limit(10);        // First 10 results
    qb.select('*').limit(10, 20); // 10 results starting from offset 20

    Parameters

    • optionallimit: number
    • offset: number = 0

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedmerge

  • merge<P>(data): this
  • merge<F>(data): this
  • Parameters

    • data: readonly NestedAutoPath<T, RootAlias, Context, P>[]

    Returns this

inheritedoffset

  • Sets an OFFSET clause to skip a number of results.

    @example
    qb.select('*').limit(10).offset(20);  // Results 21-30

    Parameters

    • optionaloffset: number

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedonConflict

inheritedorderBy

  • Adds an ORDER BY clause to the query, replacing any existing order.

    @example
    qb.orderBy({ name: 'asc', createdAt: 'desc' });
    qb.orderBy([{ name: 'asc' }, { createdAt: 'desc' }]);
    qb.orderBy({ profile: { bio: 'asc' } }); // nested via object
    qb.orderBy({ 'profile.bio': 'asc' }); // nested via dot notation

    Parameters

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedorHaving

  • Parameters

    • optionalcond: string | QBFilterQuery<T, RootAlias, Context, never>
    • optionalparams: any[]

    Returns SelectQueryBuilder<T, RootAlias, never, Context, never, *>

inheritedorWhere

  • orWhere(cond): this
  • orWhere(cond, params): this
  • Adds an OR WHERE clause to the query using an object condition.

    @example
    qb.where({ status: 'active' }).orWhere({ role: 'admin' });
    qb.where({ name: 'John' }).orWhere({ name: 'Jane' });

    Parameters

    Returns this

inheritedreturning

  • returning<F>(fields): this
  • Parameters

    • optionalfields: F | F[]

    Returns this

inheritedselect

  • select<F>(fields, distinct): SelectQueryBuilder<T, RootAlias, never, Context, ExtractRawAliases<F>, ExtractRootFields<F[number] & string, RootAlias, Context>>
  • select<P>(fields, distinct): SelectQueryBuilder<T, RootAlias, never, Context, never, ExtractRootFields<P, RootAlias, Context>>
  • select<P>(fields, distinct): SelectQueryBuilder<T, RootAlias, never, Context, never, ExtractRootFields<P, RootAlias, Context>>
  • select<F>(fields, distinct): SelectQueryBuilder<T, RootAlias, never, Context, ExtractRawAliasFromField<F>, ExtractRootFields<F & string, RootAlias, Context>>
  • Creates a SELECT query, specifying the fields to retrieve.

    @example
    // Select specific fields
    const qb = em.createQueryBuilder(User, 'u');
    qb.select(['u.id', 'u.name', 'u.email']);

    // Select with raw expressions
    qb.select([raw('count(*) as total')]);

    // Select with distinct
    qb.select('*', true);

    Parameters

    • fields: F
    • optionaldistinct: boolean

    Returns SelectQueryBuilder<T, RootAlias, never, Context, ExtractRawAliases<F>, ExtractRootFields<F[number] & string, RootAlias, Context>>

inheritedsetFlag

  • setFlag(flag): this
  • Parameters

    Returns this

inheritedsetFlushMode

  • setFlushMode(flushMode): this
  • Parameters

    Returns this

inheritedsetLockMode

  • setLockMode(mode, tables): this
  • Parameters

    • optionalmode: LockMode
    • optionaltables: string[]

    Returns this

inheritedsetLoggerContext

  • setLoggerContext(context): void
  • Sets logger context for this query builder.


    Parameters

    Returns void

inheritedstream

  • stream(options): AsyncIterableIterator<Loaded<T, never, *>, any, any>
  • Executes the query and returns an async iterable (async generator) that yields results one by one. By default, the results are merged and mapped to entity instances, without adding them to the identity map. You can disable merging and mapping by passing the options { mergeResults: false, mapResults: false }. This is useful for processing large datasets without loading everything into memory at once.

    const qb = em.createQueryBuilder(Book, 'b');
    qb.select('*').where({ title: '1984' }).leftJoinAndSelect('b.author', 'a');

    for await (const book of qb.stream()) {
    // book is an instance of Book entity
    console.log(book.title, book.author.name);
    }

    Parameters

    Returns AsyncIterableIterator<Loaded<T, never, *>, any, any>

inheritedtoQuery

  • toQuery(): { params: readonly unknown[]; sql: string }
  • Returns { params: readonly unknown[]; sql: string }

    • params: readonly unknown[]
    • sql: string

inheritedtoRaw

  • Returns raw fragment representation of this QueryBuilder.


    Returns RawQueryFragment<string>

inheritedtruncate

  • Creates a TRUNCATE query to remove all rows from the table.


    Returns TruncateQueryBuilder<T>

inheritedunsetFlag

  • unsetFlag(flag): this
  • Parameters

    Returns this

inheritedupdate

  • Creates an UPDATE query with the given data. Use where() to specify which rows to update.

    @example
    await em.createQueryBuilder(User)
    .update({ name: 'John Doe' })
    .where({ id: 1 })
    .execute();

    Parameters

    Returns UpdateQueryBuilder<T, RootAlias, Context>

inheritedwhere

  • where(cond, params, operator): this
  • Parameters

    • cond: string | QBFilterQuery<T, RootAlias, Context, never>
    • optionalparams: any[] | $and | $or
    • optionaloperator: $and | $or

    Returns this

inheritedwithSchema

  • withSchema(schema): this
  • Parameters

    • optionalschema: string

    Returns this

inheritedwithSubQuery

  • withSubQuery(subQuery, alias): this
  • Parameters

    Returns this