@Index
@Entity()
@Index(["firstName", "lastName"])
@Index(["lastName", "middleName"])
@Index(["firstName", "lastName", "middleName"], { unique: true })
export class User {
@Column()
firstName: string;
@Column()
lastName: string;
middleName: string;
}
了解有关 indices的更多信息。
@Unique
此装饰器允许你为特定列创建数据库唯一约束。该装饰器只能应用于实体本身。
例如:
@Check
例如:
@Entity()
@Check(`"firstName" <> 'John' AND "lastName" <> 'Doe'`)
@Check(`"age" > 18`)
export class User {
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
age: number;
}
@Transaction
, 和 @TransactionRepository
@Transaction
用于方法上,并将其所有的执行包裹到单个数据库事务中。必须使用@TransportManager
提供的管理器执行所有数据库查询或者使用@TransactionRepository
注入的事务存储库。例如:
@Transaction()
save(user: User, @TransactionRepository(User) userRepository: Repository<User>) {
return userRepository.save(user);
}
@EntityRepository
将自定义类标记为实体存储库。例如:
@EntityRepository()
export class UserRepository {
}
你可以使用connection.getCustomRepository
或entityManager.getCustomRepository
方法获取任何自定义创建的存储库。
了解有关 的更多信息。