typescript - 我可以使用部分实体来保存 typeorm 吗?
问题描述
所以我有这个表结构
--changeset 0004-order:ccushing
create table if not exists "order"."order"
(
id uuid primary key not null default uuid_generate_v4(),
state uuid references "order".order_status
);
--changeset 0004-h0-table-order_event_type:ccushing
create table if not exists "order".order_event_type
(
id uuid primary key not null default uuid_generate_v4(),
key text unique not null
);
--changeset 0004-h1-table-order_event:ccushing
create table if not exists "order".order_event
(
id uuid primary key not null default uuid_generate_v4(),
order_id uuid not null references "order"."order" (id),
event_type uuid not null references "order".order_event_type (id),
event jsonb not null,
unique (order_id, event),
unique (order_id, event_type)
);
我想创建一个新的OrderEventEntity
,但我不想Order
在这样做时加载,因为我只是order_id
在事件中得到。
@Entity('order.order_event')
export default class OrderEventEntity implements Identifiable<string> {
@PrimaryGeneratedColumn({ type: 'uuid' })
readonly id!: string;
@ManyToOne(() => OrderEventTypeEntity, ({ event }) => event)
readonly eventType!: string;
@ManyToOne(() => OrderEntity, ({ events }) => events)
readonly order!: OrderEntity;
}
我能做到吗
const order = new Order({ id: 1234 })
repo.save( new OrderEventEntity({ order: order, ... })
或类似的(可能是部分负载)而不会丢失 OneToMany?但仍然只有订单 ID。
解决方案
有两种选择:
- 在您的定义
order_id
列OrderEventEntity
@Entity('order.order_event')
export default class OrderEventEntity implements Identifiable<string> {
@PrimaryGeneratedColumn({ type: 'uuid' })
readonly id!: string;
@ManyToOne(() => OrderEventTypeEntity, ({ event }) => event)
readonly eventType!: string;
@Column()
order_id: string;
@ManyToOne(() => OrderEntity, ({ events }) => events)
readonly order!: OrderEntity;
}
- 使用强制施法技巧
const order = { id: 1234 } as Order;
repo.save( new OrderEventEntity({ order: order, ... })
推荐阅读
- pkcs#11 - 有没有办法在 pkcs11Interop 创建的签名中获取签名创建日期?
- java - 如何使 Webview 直接到离线页面 当互联网连接缓慢或信号丢失时
- asp.net - 强制其他开发人员有一个验证类
- database-normalization - 多种 ID 的最佳做法是什么?- 标准化问题
- android - 如何反编译aab AndroidManifest.xml
- pandas - 如何在 Pandas groupby 对象上应用 stack() 函数
- c++ - 如何从 char * 转换为“WTF::String”?
- bash - 将 WebVTT 文件从 Youtube 转换为纯文本
- javascript - 如何确保使用 Node.js 的请求模块取回 cookie?
- excel - 循环用于在常规枢轴上工作的切片器选择,但不适用于功率枢轴