发生错误"/>
尝试通过ID获取特定类别时发生错误
因此,我已经检查了我的类别服务,类别实体和类别控制器。一切似乎都很好。当我尝试获取所有类别(/ api / categories)时,一切都像魅力一样。但是,当我尝试通过ID(/ api / categories / 2)获取一个特定的类别时,它抛出statusCode:500,“内部服务器错误”,并且在控制台中得到:
[ExceptionsHandler] ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '."categoryId" = 2)' at line 1 +648ms
QueryFailedError: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '."categoryId" = 2)' at line 1
at new QueryFailedError (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\typeorm\error\QueryFailedError.js:11:28)
at Query.<anonymous> (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\typeorm\driver\mysql\MysqlQueryRunner.js:170:45)
at Query.<anonymous> (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\Connection.js:526:10)
at Query._callback (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\Connection.js:488:16)
at Query.Sequence.end (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query.ErrorPacket (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\sequences\Query.js:92:8)
at Protocol._parsePacket (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Protocol.js:38:16)
category.service.ts:
import { Injectable } from "@nestjs/common";
import { TypeOrmCrudService } from "@nestjsx/crud-typeorm";
import { Category } from "entities/category.entity";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";
@Injectable()
export class CategoryService extends TypeOrmCrudService<Category>{
constructor(
@InjectRepository(Category)
public category: Repository<Category>
){
super(category)
}
}
category.entity.ts
import {
Column,
Entity,
Index,
JoinColumn,
ManyToOne,
OneToMany,
PrimaryGeneratedColumn,
} from "typeorm";
import { Furniture } from "./furniture.entity";
@Index("uq_category_name", ["name"], { unique: true })
@Index("uq_category_image_path", ["imagePath"], { unique: true })
@Index("fk_category_parent__category_id", ["parentCategoryId"], {})
@Entity("category")
export class Category {
@PrimaryGeneratedColumn({ type: "int", name: "category_id", unsigned: true })
categoryId: number;
@Column("varchar", {
name: "name",
unique: true,
length: 32
})
name: string;
@Column("varchar", {
name: "image_path",
unique: true,
length: 128
})
imagePath: string;
@Column("int", {
name: "parent__category_id",
nullable: true,
unsigned: true,
})
parentCategoryId: number | null;
@ManyToOne(() => Category, (category) => category.categories, {
onDelete: "NO ACTION",
onUpdate: "CASCADE",
})
@JoinColumn([
{ name: "parent__category_id", referencedColumnName: "categoryId" },
])
parentCategory: Category;
@OneToMany(() => Category, (category) => category.parentCategory)
categories: Category[];
@OneToMany(() => Furniture, (furniture) => furniture.category)
furnitures: Furniture[];
}
category.controller.ts。
import { Controller } from "@nestjs/common";
import { Crud } from "@nestjsx/crud";
import { Category } from "entities/category.entity";
import { CategoryService } from "src/services/category/category.service";
@Controller('api/category')
@Crud({
model: {
type: Category
},
params: {
id: {
field: 'categoryId',
type: 'number',
primary: true
}
},
query: {
join: {
categories: {
eager: true
},
parentCategory: {
eager: true
},
furnitures: {
eager: true
}
}
}
})
export class CategoryController {
constructor(public service: CategoryService){}
}
回答如下:嘿,尝试在您的MySQL服务器上执行SET GLOBAL sql_mode = ANSI;
和ID:{字段:“ category_id” //没有categoryId
}
更多推荐
尝试通过ID获取特定类别时发生错误
发布评论