import { Column, Entity, ManyToOne, PrimaryGeneratedColumn, } from "../../../src/index" import { PostDetails } from "./PostDetails" import { PostCategory } from "./PostCategory" import { PostAuthor } from "./PostAuthor" import { PostInformation } from "./PostInformation" import { PostImage } from "./PostImage" import { PostMetadata } from "./PostMetadata" @Entity("sample3_post") export class Post { @PrimaryGeneratedColumn() id: number @Column() title: string @Column() text: string // post has relation with category, however inverse relation is not set (category does not have relation with post set) @ManyToOne((type) => PostCategory, { cascade: true, }) category: PostCategory // post has relation with details. cascade inserts here means if new PostDetails instance will be set to this // relation it will be inserted automatically to the db when you save this Post entity @ManyToOne((type) => PostDetails, (details) => details.posts, { cascade: ["insert"], }) details?: PostDetails // post has relation with details. cascade update here means if new PostDetail instance will be set to this relation // it will be inserted automatically to the db when you save this Post entity @ManyToOne((type) => PostImage, (image) => image.posts, { cascade: ["update"], }) image: PostImage // post has relation with details. cascade update here means if new PostDetail instance will be set to this relation // it will be inserted automatically to the db when you save this Post entity @ManyToOne((type) => PostMetadata, (metadata) => metadata.posts) metadata: PostMetadata | null // post has relation with details. full cascades here @ManyToOne((type) => PostInformation, (information) => information.posts, { cascade: true, }) information: PostInformation // post has relation with details. not cascades here. means cannot be persisted, updated or removed @ManyToOne((type) => PostAuthor, (author) => author.posts) author: PostAuthor }