Skip to main content
Version: Next

PropertyOptions <Owner>

Hierarchy

Index

Properties

optionalaccessor

accessor?: boolean | keyof Owner

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;
}
}

optionalautoincrement

autoincrement?: boolean

Explicitly specify the auto increment of the primary key.

optionalcheck

check?: string | CheckCallback<Owner>

Specify column with check constraints. (Postgres driver only)

@see

optionalcolumnType

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)

optionalcolumnTypes

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)

optionalcomment

comment?: string

Specify comment of column for Generator. (SQL only)

optionalconcurrencyCheck

concurrencyCheck?: boolean

Set to true to enable Locking via concurrency fields.

optionalcustomOrder

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

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

optionaldefault

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)

optionaldefaultRaw

defaultRaw?: string

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

optionalextra

extra?: string

mysql only

optionalfieldName

fieldName?: string

Specify database column name for this property.

@see

optionalfieldNames

fieldNames?: string[]

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

@see

optionalformula

formula?: string | (alias) => string

Set to map some SQL snippet for the entity.

@see

optionalgenerated

generated?: string | GeneratedColumnCallback<Owner>

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

optionalgetter

getter?: boolean

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

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

optionalgetterName

getterName?: keyof Owner

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;
}

optionalgroups

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.

optionalhidden

hidden?: boolean

Set to true to omit the property when Serializing.

optionalhydrate

hydrate?: boolean

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

optionalignoreSchemaChanges

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

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

@see

optionalindex

index?: string | boolean

Explicitly specify index on a property.

optionallazy

lazy?: boolean

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

@see

optionallength

length?: number

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

optionalname

name?: string

Alias for fieldName.

optionalnullable

nullable?: boolean

Set column as nullable for Generator.

optionalonCreate

onCreate?: (entity, em) => any

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


Type declaration

optionalonUpdate

onUpdate?: (entity, em) => any

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


Type declaration

optionalpersist

persist?: boolean

Set false to define Property.

optionalprecision

precision?: number

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

optionalprimary

primary?: boolean

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

@see

optionalref

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.

optionalreturning

returning?: boolean

Add the property to the returning statement.

optionalruntimeType

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.

optionalscale

scale?: number

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

optionalserializedName

serializedName?: string

Specify name of key for the serialized value.

optionalserializedPrimaryKey

serializedPrimaryKey?: boolean

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

@see

optionalserializer

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

optionalsetter

setter?: boolean

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

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

optionaltrackChanges

trackChanges?: boolean

Set false to disable change tracking on a property level.

@see

optionaltype

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

optionalunique

unique?: string | boolean

Set column as unique for Generator. (SQL only)

optionalunsigned

unsigned?: boolean

Set column as unsigned for Generator. (SQL only)

optionalversion

version?: boolean

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