在 TypeORM 中为生成的列设置基值/起始值

Set base / start value for Generated Column in TypeORM

我在构建的系统中需要一个自动递增的订单号。

我们正在尝试使用以下语法:

@Column()
@Generated('increment')
private orderNumber: number;

此方法的问题是起始值将为 1。我们需要能够设置自定义起始值,因为我们正在用现有序列替换另一个订单系统数字。

我们尝试使用 { default: 9000 } 作为列选项,但这会产生以下错误:

RequestError:无法在具有 IDENTITY 属性的列上创建默认值。 Table'order',列'orderNumber'

用老办法解决了

async function createOrderNumber() {
    const startOrderNumber = 9000;

    const highestOrderNumber = await orderRepository
        .createQueryBuilder('order')
        .select('MAX(order.orderNumber)', 'order')
        .getRawOne();

    const newOrderNumber =
        highestOrderNumber.order < startOrderNumber ? startOrderNumber : highestOrderNumber.order + 1;

    return newOrderNumber;
}