您好,我的 typeorm 代码有问题。
我按照这里的示例进行操作:https://github.com/typeorm/typeorm/blob/master/docs/tree-entities.md#materialized-path-aka-path-enumeration .
所以我的实体看起来像:
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”的 Controller 中,我想获取整个树,但出现“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);
}
}
关于typescript - 类型 'findAncestors' 上不存在属性 'Repository ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64241567/