Skip to main content
Version: Next

PrimaryKeyOptions <T>

Hierarchy

Index

Properties

optionalinheritedaccessor

accessor?: boolean | keyof T

When using a private property backed by a public get/set pair, use the accessor option to point to the other side.

The fieldName will be inferred based on the accessor name unless specified explicitly.

If the accessor option points to something, the ORM will use the backing property directly.

@example
@Entity()
export class User {
// the ORM will use the backing field directly
@Property({ accessor: 'email' })
private _email: string;

get email() {
return this._email;
}

set email() {
return this._email;
}
}

If you want to the ORM to use your accessor internally too, use accessor: true on the get/set property instead. This is handy if you want to use a native private property for the backing field.

@example
@Entity({ forceConstructor: true })
export class User {
#email: string;

// the ORM will use the accessor internally
@Property({ accessor: true })
get email() {
return this.#email;
}

set email() {
return this.#email;
}
}

optionalinheritedautoincrement

autoincrement?: boolean

Explicitly specify the auto increment of the primary key.

optionalinheritedcheck

check?: string | CheckCallback<T>

Specify column with check constraints. (Postgres driver only)

@see

optionalinheritedcolumnType

columnType?: AnyString | ColumnType

Specify an exact database column type for Generator. This option is only for simple properties represented by a single column. (SQL only)

optionalinheritedcolumnTypes

columnTypes?: (AnyString | ColumnType)[]

Specify an exact database column type for Generator. This option is suitable for composite keys, where one property is represented by multiple columns. (SQL only)

optionalinheritedcomment

comment?: string

Specify comment of column for Generator. (SQL only)

optionalinheritedconcurrencyCheck

concurrencyCheck?: boolean

Set to true to enable Locking via concurrency fields.

optionalinheritedcustomOrder

customOrder?: string[] | number[] | boolean[]

Specify a custom order based on the values. (SQL only)

optionalinheriteddefault

default?: null | string | number | boolean | string[] | number[]

Specify default column value for Generator. This is a runtime value, assignable to the entity property. (SQL only)

optionalinheriteddefaultRaw

defaultRaw?: string

Specify SQL functions for Generator. (SQL only) Since v4 you should use defaultRaw for SQL functions. e.g. now()

optionalinheritedextra

extra?: string

mysql only

optionalinheritedfieldName

fieldName?: string

Specify database column name for this property.

@see

optionalinheritedfieldNames

fieldNames?: string[]

Specify database column names for this property. Same as fieldName but for composite FKs.

@see

optionalinheritedformula

formula?: string | (alias) => string

Set to map some SQL snippet for the entity.

@see

optionalinheritedgenerated

generated?: string | GeneratedColumnCallback<T>

For generated columns. This will be appended to the column type after the generated always clause.

optionalinheritedgetter

getter?: boolean

Set true to define the properties as getter. (virtual)

@example
@Property({ getter: true })
get fullName() {
return this.firstName + this.lastName;
}

optionalinheritedgetterName

getterName?: keyof T

When defining a property over a method (not a getter, a regular function), you can use this option to point to the method name.

@example
@Property({ getter: true })
getFullName() {
return this.firstName + this.lastName;
}

optionalinheritedgroups

groups?: string[]

Specify serialization groups for serialize() calls. If a property does not specify any group, it will be included, otherwise only properties with a matching group are included.

optionalinheritedhidden

hidden?: boolean

Set to true to omit the property when Serializing.

optionalinheritedhydrate

hydrate?: boolean

Set false to disable hydration of this property. Useful for persisted getters.

optionalinheritedignoreSchemaChanges

ignoreSchemaChanges?: (type | extra | default)[]

Set to avoid a perpetual diff from the Generator when columns are generated.

@see

optionalinheritedindex

index?: string | boolean

Explicitly specify index on a property.

optionalinheritedlazy

lazy?: boolean

Set to omit the property from the select clause for lazy loading.

@see

optionalinheritedlength

length?: number

Set length of database column, used for datetime/timestamp/varchar column types for Generator. (SQL only)

optionalinheritedname

name?: string

Alias for fieldName.

optionalinheritednullable

nullable?: boolean

Set column as nullable for Generator.

optionalinheritedonCreate

onCreate?: (entity, em) => any

Automatically set the property value when entity gets created, executed during flush operation.


Type declaration

optionalinheritedonUpdate

onUpdate?: (entity, em) => any

Automatically update the property value every time entity gets updated, executed during flush operation.


Type declaration

optionalinheritedpersist

persist?: boolean

Set false to define Property.

optionalinheritedprecision

precision?: number

Set precision of database column to represent the number of significant digits. (SQL only)

optionalinheritedprimary

primary?: boolean

Set true to define entity's unique primary key identifier. Alias for @PrimaryKey() decorator

@see

optionalinheritedref

ref?: boolean

Enable ScalarReference wrapper for lazy values. Use this in combination with lazy: true to have a type-safe accessor object in place of the value.

optionalinheritedreturning

returning?: boolean

Add the property to the returning statement.

optionalinheritedruntimeType

runtimeType?: string

Runtime type of the property. This is the JS type that your property is mapped to, e.g. string or number, and is normally inferred automatically via reflect-metadata. In some cases, the inference won't work, and you might need to specify the runtimeType explicitly - the most common one is when you use a union type with null like foo: number | null.

optionalinheritedscale

scale?: number

Set scale of database column to represents the number of digits after the decimal point. (SQL only)

optionalinheritedserializedName

serializedName?: string

Specify name of key for the serialized value.

optionalinheritedserializedPrimaryKey

serializedPrimaryKey?: boolean

Set to define serialized primary key for MongoDB. (virtual) Alias for @SerializedPrimaryKey() decorator.

@see

optionalinheritedserializer

serializer?: (value, options) => any

Set to use serialize property. Allow to specify a callback that will be used when serializing a property.

@see

Type declaration

    • (value, options): any
    • Parameters

      Returns any

optionalinheritedsetter

setter?: boolean

Set true to define the properties as setter. (virtual)

@example
@Property({ setter: true })
set address(value: string) {
this._address = value.toLocaleLowerCase();
}

optionalinheritedtrackChanges

trackChanges?: boolean

Set false to disable change tracking on a property level.

@see

optionalinheritedtype

type?: string | Date | uint8array | array | enumArray | unknown | AnyString | Type<any, any> | Constructor<Partial<any>> | ObjectId | Constructor<Type<any, any>> | () => unknown | ColumnType

optionalinheritedunique

unique?: string | boolean

Set column as unique for Generator. (SQL only)

optionalinheritedunsigned

unsigned?: boolean

Set column as unsigned for Generator. (SQL only)

optionalinheritedversion

version?: boolean

Set to true to enable Locking via version field. (SQL only)