small fixes

This commit is contained in:
Umed Khudoiberdiev 2016-04-29 12:56:32 +05:00
parent a69cb3a5ff
commit 68a775c475
5 changed files with 34 additions and 17 deletions

View File

@ -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;
}

View File

@ -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,

View File

@ -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,

View File

@ -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:

View 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.`;
}
}