【发布时间】:2021-11-02 19:48:35
【问题描述】:
我之间有一个@OneToMany 关系
聊天室 1 ---- M > 消息
我遇到的问题是,每当我尝试插入一条消息(或大量消息)时,
ChatRoom 的外键为空。
另外,我正在上传我的设置。
@Entity("messages")
export class Message {
@PrimaryColumn()
id: string;
@ManyToOne(() => ChatRoom, chatroom => chatroom.messages)
chatRoom: ChatRoom | undefined
@Column({nullable: false})
message: string;
@Column({nullable: false})
receiver: string;
@Column({nullable: false})
created_utc: Date;
}
@Entity("chatrooms")
export class ChatRoom {
@PrimaryColumn()
id: string;
@OneToMany(() => Message, message => message.chatRoom, {
cascade: ["insert", "remove"]
})
@JoinColumn({name: 'id'})
messages: Message[];
@Column()
last_msg: string;
@Column()
last_msg_created_utc: Date;
@Column()
num_messages: number;
@Column()
num_replies: number;
@Column()
seen: boolean;
}
问题:
当尝试对许多消息创建批量插入时,我注意到查询没有设置外键任何值,而是 NULL。
我尝试插入的消息 json:
{
id: '1',
message: 'text',
receiver: 'someone',
created_utc: 'utc date...',
chatRoomId: '123' -> chat room id exists
}
the query looks like this :
(this query is for single insert not bulk, but it goes the same for bulk)
INSERT INTO "messages"("id", "message", "receiver", "created_utc", "chatRoomId") VALUES ($1, $2, $3, $4, DEFAULT) -- PARAMETERS: [" bJU7","Zdravo test","kompir_zomba","2021-
09-05T09:53:54.693Z"]
这告诉我在插入行时甚至没有考虑 chatRoomId。 该表如下所示
我用来插入消息的 Typeorm 插入查询
@InjectRepository(Message) private messageRepository: Repository<Message>
.....
this.messageRepository.save(message);
有人知道如何进行吗?
【问题讨论】:
标签: node.js typescript postgresql typeorm