我希望能够向我的实体模型添加自定义装饰器,以标记用户元数据迁移的特定字段。
例如:
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";
import { CreatedBy } from "../subscribers/test";
@Entity()
export class User {
@PrimaryGeneratedColumn()
id!: number;
@Column()
name!: string;
@Migrate()
userValue!: string;
@Migrate()
specficValue!: string;
}
其中 migrate 可能类似于 Column
装饰器,但我可以采用 User
模型,并找到具有 migrate 装饰器的所有属性,以便我知道哪些属性插入前进。
有没有办法在 TypeORM 中实现这一点?
感谢您提供的所有帮助。
最佳答案
检查以下 github typeorm 问题: https://github.com/typeorm/typeorm/issues/2711
具体来说,我会检查“ColumnCommonOptions”装饰器的工作原理: https://github.com/typeorm/typeorm/blob/master/src/decorator/options/ColumnCommonOptions.ts
看起来很简单:
// MigrateDecorator.ts
import { getMetadataArgsStorage } from "typeorm";
//Optional
import { MigrateOptionsInterface } from './MigrateOptionsInterface'
export function MigrateDecorator(options?: MigrateOptionsInterface): Function {
return function (object: Object, propertyName: string) {
getMetadataArgsStorage().columns.push({
propertyName,
migrate: options.migrate || false // just an example
});
};
}
关于javascript - TypeORM 自定义装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66555892/