📅  最后修改于: 2023-12-03 15:35:24.013000             🧑  作者: Mango
TypeORM是一个功能强大、易于使用的ORM(Object-Relational Mapping)框架,它支持多种数据库,并提供了许多方便的功能,其中之一就是Range。Range是一种表示数据范围的类型,它可以轻松方便地添加到你的TypeORM实体中。
要使用范围,首先需要定义一个Range类型的属性。例如,如果要在实体中添加'price'属性,其值的范围为0到100,则可以按如下方式定义:
import { Entity, Column } from 'typeorm';
import { Range } from 'typeorm';
@Entity()
export class Product {
@Column()
name: string;
@Column(() => Range)
price: Range;
}
上述代码中,'Column'装饰器将'price'属性标记为实体的一个列,而'Range'表示该列的类型为范围。
要向'price'属性添加范围,可以使用范围类的构造函数创建一个范围对象并将其分配给属性,如下所示:
const product = new Product();
product.name = 'apple';
product.price = new Range(0, 100);
查询实体时,可以使用'RelationQueryBuilder'中的以下方法来查询范围:
'between'
:查询实体属性的值在给定范围内的实体。'notBetween'
:查询实体属性的值不在给定范围内的实体。'equal'
:查询范围等于给定的范围的实体。'notEqual'
:查询范围不等于给定的范围的实体。'in'
:查询实体属性的值在给定范围内的实体。'notIn'
:查询实体属性的值不在给定范围内的实体。例如,要查询价格在0到100之间的商品,可以使用如下代码:
const query = await getRepository(Product)
.createQueryBuilder('product')
.where('product.price BETWEEN :start AND :end', { start: 0, end: 100 })
.getMany();
在上述代码中,'createQueryBuilder'方法返回一个'RelationQueryBuilder'对象,该对象可以用于构建查询。使用'where'方法指定查询条件,其中'product.price BETWEEN :start AND :end'表示查询'price'属性在0到100范围内的实体。
TypeORM中的范围是一种方便的功能,因为它使您可以轻松地处理数据范围。通过定义范围属性、添加范围和使用'RelationQueryBuilder'查询范围,您可以获得更灵活、更简单的数据库操作。