Typeorm插入主值

问题描述

我有三个表:国家,州,城市。每个表主键列数据类型在实体级别定义为“ uuid”格式。每个都有双向关系,例如(OnetoMany,ManytoOne)。各国陈述和引用的记录超过1000条。所有人都牢牢地固定在sql文件中(见下文),问题出在UUID上,我不知道如何为主键列生成UUID并将此值传递给子表。

使用的技术

中间件-NestJS框架
ORM-TypeOrm框架
数据库-Postgres

国家/地区实体

@Entity({name:"countries"})
export class Countries {

@PrimaryGeneratedColumn("uuid",{
    name:"country_id"
})
countryId:string;

@Column({
    name:"state_name",nullable:true,unique:true        
})
stateName:string; 

@OneToMany(type=>States)
states:States[];

}

国家实体

@Entity({name:"states"})
export class States {

@PrimaryGeneratedColumn("uuid",{
    name:"state_id"        
})
stateId:string; 

@Column({
    name:"state_name",unique:true        
})
stateName:string;  
  
 @ManyToOne(type=>Countries)
 @JoinColumn({name:"country_id"})
 countries:Countries;
 
  @OneToMany(type=>Cities)
 cities:Cities[];

}

城市实体

@Entity({name:"cities"})
export class Cities {

@PrimaryGeneratedColumn("uuid",{
    name:"city_id"
})
cityId:string;   

@Column({
    name:"city_name",nullable:false,unique:true
})
cityName:string;

@ManyToOne(type=>States)
@JoinColumn({name:"state_id"})
states:States;    
@Column({
    name : "state_id"
})
}

SQL文件

INSERT INTO public.erc_countries (country_id,acronym2,country_name,status,created_on) VALUES
 (**countryUUID1**,'AF','Afghanistan',1,'**today**'),(**countryUUID2**,'AL','Albania','**today**');

INSERT INTO public.erc_states (state_id,country_id,state_name,created_on) VALUES
(**stateUUID1**,101,'Andaman and Nicobar Islands',**countryUUID1**,(**stateUUID2**,'Andhra Pradesh',**countryUUID2**,'**today**');

  INSERT INTO public.erc_cities (city_id,state_id,city_name,created_on) VALUES
  (1,'Bombuflat',**stateUUID1**,(2,'Garacharma',**stateUUID2**,'**today**');

我的疑问是,我不知道如何为国家/地区生成UUID,并且应该为州和城市更新相同的id。

假设它是一个序列表示,我将为国家/地区的主键提供1,2值,并且可以为州表提供相同的值。但是我不知道如何在sql文件中生成UUID值并为子表赋予相同的值。

我有一个主意,就像实体关系一样,我们应将默认数据保留为JSON格式。因此,如果我插入父数据,则将使用casecade选项自动保存子数据。但是我不知道这是不是最好的方法。

样本JSON数据

[{
name:"Afghanistan",states:[
    {   
        name:"XYZ",cities : [
            {
                name:"city2"
            }
        ]
    },{   
        name:"abc",cities : [
            {
                name:"city2"
            }
        ]
    }
]

}]

所以请建议我如何在带有子表或JSON文件生成的UUID值的sql文件中插入主条目?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...