嗨,我的typeorm代码有问题。
我从这里开始举例:https://github.com/typeorm/typeorm/blob/master/docs/tree-entities.md#materialized-路径又称路径枚举。
所以我的实体看起来像:
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
Tree,
TreeChildren,
TreeParent,
} from 'typeorm';
@Entity()
@Tree('materialized-path')
export class Category {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@TreeChildren()
children: Category[];
@TreeParent()
parent: Category;
@CreateDateColumn({
type: 'timestamp',
default: () => 'CURRENT_TIMESTAMP(6)',
})
public createdAt: Date;
@UpdateDateColumn({
type: 'timestamp',
default: () => 'CURRENT_TIMESTAMP(6)',
onUpdate: 'CURRENT_TIMESTAMP(6)',
})
public updatedAt: Date;
}
在我的名为"CategoryController"的控制器中,我想获得整个树,但我得到了一个错误,即"findAncestors"不存在。
import { getRepository } from 'typeorm';
import {Category} from "../entity/Categories";
export class CategoryController {
private categoryRepository = getRepository(Category);
async getCategoryTreeBySingleCategory(category:Category|string){
{...}
return await this.categoryRepository.findAncestors(category); // <--- Property 'findAncestors' does not exist on type 'Repository '.
}
}
有人知道为什么,可以帮助我吗?
提前感谢!
成员函数findAncestors
仅在类型TreeRepository
上定义,该类型是通过使用getTreeRepository
而不是getRepository
获得的。
因此写入
import { getRepository } from 'typeorm';
import {Category} from "../entity/Categories";
export class CategoryController {
private categoryRepository = getTreeRepository(Category);
async getCategoryTreeBySingleCategory(category:Category|string){
{...}
return await this.categoryRepository.findAncestors(category);
}
}
如果有人在写时遇到问题
Category.find((
并且get error find((没有定义或者类似的东西,那么
从类型导入基本实体
export class Category extends BaseEntity