1
resposta

Entity "ProdutoCaracteristica" does not have a primary column

Ao chegar nessa aula e rodar o codigo, está gerando esse erro, onde eu não consegui achar a solução

import { Entity, Column } from 'typeorm';

@Entity("produto_caracteristicas") export class ProdutoCaracteristica { @Column({ name: "nome", length: 100, nullable: false }) nome: string;

@Column({ name: "descricao", length: 100, nullable: false })
descricao: string;

}

Esse é o meu codigo e usei essa recomendação do curso para criar a tabela

CREATE TABLE IF NOT EXISTS public.produto_caracteristicas ( id uuid NOT NULL DEFAULT uuid_generate_v4(), nome character varying(100) COLLATE pg_catalog."default" NOT NULL, descricao character varying(255) COLLATE pg_catalog."default" NOT NULL, "produtoId" uuid, CONSTRAINT "PK_132816ff55e30a6bf554c9e2545" PRIMARY KEY (id), CONSTRAINT "FK_67339e59ab4b3ed091cf318f426" FOREIGN KEY ("produtoId") REFERENCES public.produtos (id) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE );

ALTER TABLE IF EXISTS public.produto_caracteristicas OWNER to root;

1 resposta

Olá, Guilherme! O erro Entity "ProdutoCaracteristica" does not have a primary column indica que a entidade ProdutoCaracteristica não tem uma coluna primária definida. No TypeORM, cada entidade deve ter pelo menos uma coluna primária.

No seu código, você definiu as colunas nome e descricao, mas nenhuma delas foi marcada como coluna primária. Para corrigir isso, você pode usar o decorador @PrimaryColumn() do TypeORM para marcar uma coluna como primária.

Por exemplo, se você quiser que a coluna nome seja a coluna primária, você pode fazer isso:

import { Entity, PrimaryColumn } from 'typeorm';

@Entity("produto_caracteristicas")
export class ProdutoCaracteristica {
    @PrimaryColumn({ name: "nome", length: 100, nullable: false })
    nome: string;

    @Column({ name: "descricao", length: 100, nullable: false })
    descricao: string;
}

Espero que isso ajude! Se você tiver mais perguntas ou encontrar mais problemas, sinta-se à vontade para perguntar. Estou aqui para ajudar!