mirror of
https://github.com/typeorm/typeorm.git
synced 2025-12-08 21:26:23 +00:00
small fixes
This commit is contained in:
parent
a69cb3a5ff
commit
68a775c475
@ -1,6 +1,8 @@
|
||||
import {PrimaryColumn, Column} from "../../../src/columns";
|
||||
import {AbstractTable} from "../../../src/decorator/tables/AbstractTable";
|
||||
import {BasePost} from "./BasePost";
|
||||
import {PostAuthor} from "./PostAuthor";
|
||||
import {ManyToOne} from "../../../src/decorator/relations/ManyToOne";
|
||||
|
||||
@AbstractTable()
|
||||
export class BaseObject extends BasePost {
|
||||
@ -11,4 +13,11 @@ export class BaseObject extends BasePost {
|
||||
@Column()
|
||||
title: string;
|
||||
|
||||
@ManyToOne(type => PostAuthor, post => post.posts, {
|
||||
cascadeInsert: true,
|
||||
cascadeUpdate: true,
|
||||
cascadeRemove: true
|
||||
})
|
||||
author: PostAuthor;
|
||||
|
||||
}
|
||||
@ -13,13 +13,6 @@ export class Blog extends BaseObject {
|
||||
@Column()
|
||||
text: string;
|
||||
|
||||
@ManyToOne(type => PostAuthor, post => post.posts, {
|
||||
cascadeInsert: true,
|
||||
cascadeUpdate: true,
|
||||
cascadeRemove: true
|
||||
})
|
||||
author: PostAuthor;
|
||||
|
||||
@ManyToMany(type => PostCategory, category => category.posts, {
|
||||
cascadeInsert: true,
|
||||
cascadeUpdate: true,
|
||||
|
||||
@ -13,13 +13,6 @@ export class Post extends BaseObject {
|
||||
@Column()
|
||||
text: string;
|
||||
|
||||
@ManyToOne(type => PostAuthor, post => post.posts, {
|
||||
cascadeInsert: true,
|
||||
cascadeUpdate: true,
|
||||
cascadeRemove: true
|
||||
})
|
||||
author: PostAuthor;
|
||||
|
||||
@ManyToMany(type => PostCategory, category => category.posts, {
|
||||
cascadeInsert: true,
|
||||
cascadeUpdate: true,
|
||||
|
||||
@ -5,6 +5,7 @@ import {UsingJoinColumnOnlyOnOneSideAllowedError} from "./error/UsingJoinColumnO
|
||||
import {MissingJoinColumnError} from "./error/MissingJoinColumnError";
|
||||
import {MissingJoinTableError} from "./error/MissingJoinTableError";
|
||||
import {EntityMetadata} from "../metadata/EntityMetadata";
|
||||
import {MissingPrimaryColumnError} from "./error/MissingPrimaryColumnError";
|
||||
|
||||
/**
|
||||
* Validates built entity metadatas.
|
||||
@ -17,16 +18,22 @@ export class EntityMetadataValidator {
|
||||
// Public Methods
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Validates all given entity metadatas.
|
||||
*/
|
||||
validateMany(entityMetadatas: EntityMetadata[]) {
|
||||
entityMetadatas.forEach(entityMetadata => this.validate(entityMetadata));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validates given entity metadata.
|
||||
*/
|
||||
validate(entityMetadata: EntityMetadata) {
|
||||
|
||||
// check if table metadata has an id
|
||||
if (!entityMetadata.primaryColumn)
|
||||
throw new Error(`Entity "${entityMetadata.name}" does not have a primary column. Primary column is required to have in all your entities. Use @PrimaryColumn decorator to add a primary column to your entity.`);
|
||||
|
||||
throw new MissingPrimaryColumnError(entityMetadata);
|
||||
|
||||
entityMetadata.relations.forEach(relation => {
|
||||
|
||||
// check join tables:
|
||||
|
||||
15
src/metadata-storage/error/MissingPrimaryColumnError.ts
Normal file
15
src/metadata-storage/error/MissingPrimaryColumnError.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import {EntityMetadata} from "../../metadata/EntityMetadata";
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export class MissingPrimaryColumnError extends Error {
|
||||
name = "MissingPrimaryColumnError";
|
||||
|
||||
constructor(entityMetadata: EntityMetadata) {
|
||||
super();
|
||||
this.message = `Entity "${entityMetadata.name}" does not have a primary column. Primary column is required to ` +
|
||||
`have in all your entities. Use @PrimaryColumn decorator to add a primary column to your entity.`;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user