@Index

    1. @Entity()
    2. @Index(["firstName", "lastName"])
    3. @Index(["lastName", "middleName"])
    4. @Index(["firstName", "lastName", "middleName"], { unique: true })
    5. export class User {
    6. @Column()
    7. firstName: string;
    8. @Column()
    9. lastName: string;
    10. middleName: string;
    11. }

    了解有关 indices的更多信息。

    @Unique

    此装饰器允许你为特定列创建数据库唯一约束。该装饰器只能应用于实体本身。

    例如:

    @Check

    例如:

    1. @Entity()
    2. @Check(`"firstName" <> 'John' AND "lastName" <> 'Doe'`)
    3. @Check(`"age" > 18`)
    4. export class User {
    5. @Column()
    6. firstName: string;
    7. @Column()
    8. lastName: string;
    9. @Column()
    10. age: number;
    11. }

    @Transaction, 和 @TransactionRepository

    @Transaction用于方法上,并将其所有的执行包裹到单个数据库事务中。必须使用@TransportManager提供的管理器执行所有数据库查询或者使用@TransactionRepository注入的事务存储库。例如:

    1. @Transaction()
    2. save(user: User, @TransactionRepository(User) userRepository: Repository<User>) {
    3. return userRepository.save(user);
    4. }

    @EntityRepository

    将自定义类标记为实体存储库。例如:

    1. @EntityRepository()
    2. export class UserRepository {
    3. }

    你可以使用connection.getCustomRepositoryentityManager.getCustomRepository方法获取任何自定义创建的存储库。

    了解有关 的更多信息。