Я думаю, вопрос довольно типичный, но никогда не сталкивался с такой проблемой. Итак, у меня есть 2 объекта, Hub
и Hub
статус. На стороне клиента я хочу получить Hub
и его текущий статус или Hub
его журнал состояния в разных случаях.
Вот сущности:
@Entity('hubs')
export class Hub {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
port: number;
@Column()
limit: number;
@Column()
enabled: boolean;
@Column()
isOnline: boolean;
@Column("simple-json")
slots: { free: number, total: number, freePercent: number};
@OneToMany(type => HubStatus, statusLog => statusLog.hub, { cascade: true })
statusLog: Array<HubStatus>;
@UpdateDateColumn()
updatedAt: Date;
}
@Entity('hub-status')
export class HubStatus {
@PrimaryGeneratedColumn()
id: string;
@Column()
isOnline: boolean;
@Column("simple-json")
slots: { free: number, total: number, freePercent: number};
@ManyToOne(type => Hub, hub => hub.statusLog)
hub: Hub;
@CreateDateColumn()
createdAt: Date;
}
если я скопирую
@Column()
isOnline: boolean;
@Column("simple-json")
slots: { free: number, total: number, freePercent: number};
для сущности Hub
, как, например, для сохранения последнего статуса в Hub
и HubStatus
или для запроса последнего состояния из hub-status
каждый раз, когда я получаю сущность Hub
и добавить его в мой интерфейс DTO? Интерфейс DTO:
export interface IHub {
id: string;
ip: string;
port: number;
limit?: number;
slots?: {
free: number;
total: number;
freePercent: number;
},
enabled: boolean;
isOnline?:boolean;
}
массив HubStatus
для каждого концентратора может достигать 259200 объектов журнала