用途:指导创建符合 Vendure 与 TypeORM 规范的数据库实体,适用于新增或扩展 Vendure 数据模型时。
主要能力:要求实体继承 VendureEntity、使用 @Entity() 装饰器、DeepPartial 构造输入、正确类型的 @Column()、外键索引、关系装饰器,并通过 TransactionalConnection 查询;禁止直接访问 repository、用 any 类型、把日期存为字符串、缺少迁移文件。
使用方式:先定义实体类并添加关系,再在 @VendurePlugin 的 entities 中注册,然后生成迁移,例如 npm run migration:generate -- --name=AddMyEntity 或 npx typeorm migration:generate -d ./src/migrations -n AddMyEntity;服务层用 TransactionalConnection 的 getRepository 进行增删改查。
常见模式:渠道感知实体实现 ChannelAware 并关联 Channel;软删除实现 SoftDeletable 并使用 @DeleteDateColumn;通过插件 configuration 向已有实体添加自定义字段;JSON 列用 simple-json、simple-array;日期用 timestamp,仅日期比较可存 varchar(10)。
适用场景:需要为 Vendure 插件或业务扩展新增数据表、关系、自定义字段与迁移时。
限制:不适用于仅编写插件结构、仅编写 GraphQL schema 或审查实体;资料未提供收费、价格、平台与效果信息。