Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Criando tabelas duplicadas

Após configurar os relacionamentos entre as tabelas : Pedido, Cleiten e ItemPedido, começou a criar varias tabelas duplicadas no console, mesmo após colocar o mappedBy no OneToMany do Pedido para a lis de itemPedido o problema manteve : Hibernate:

create table categorias (
   id bigint generated by default as identity,
    nome varchar(255),
    primary key (id)
)

Hibernate:

create table clientes (
   id bigint generated by default as identity,
    cpf varchar(255),
    nome varchar(255),
    primary key (id)
)

Hibernate:

create table itens_pedido (
   id bigint generated by default as identity,
    precoUnitario decimal(19,2),
    quantidade integer not null,
    pedido_id bigint,
    produto_id bigint,
    primary key (id)
)

Hibernate:

create table pedidos (
   id bigint generated by default as identity,
    data date,
    valorTotal decimal(19,2),
    cliente_id bigint,
    primary key (id)
)

Hibernate:

create table produtos (
   id bigint generated by default as identity,
    dataCadastro date,
    descricao varchar(255),
    nome varchar(255),
    preco decimal(19,2),
    categoria_id bigint,
    primary key (id)
)

Hibernate:

alter table itens_pedido 
   add constraint FK42mycompce3b7yt3l6ukdwsxy 
   foreign key (pedido_id) 
   references pedidos

Hibernate:

alter table itens_pedido 
   add constraint FKxytdlekpdaobqphujy9bmuhl 
   foreign key (produto_id) 
   references produtos

Hibernate:

alter table pedidos 
   add constraint FKg7202lk0hwxn04bmdl2thth5b 
   foreign key (cliente_id) 
   references clientes

Hibernate:

alter table produtos 
   add constraint FK8rqw0ljwdaom34jr2t46bjtrn 
   foreign key (categoria_id) 
   references categorias
   

Pode se notar que alem de criar a tabela itens pedido duas vezes, ele cria tbm a de produtos e de pedidos, sendo que no funal, elas apenas aparecem infos de referencia e foreign key. Aqui estão o codigo referente ao relacionamento enrte as tabelas: classe Pedido:Insira aqui a descrição dessa imagem para ajudar na acessibilidadeclasse ItemPedido: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Olá, Davi! Entendo que essa situação possa ser confusa. Vamos tentar resolver juntos!

Pelo que entendi, você está enfrentando um problema com a criação de tabelas duplicadas, mesmo após utilizar o mappedBy no relacionamento OneToMany do Pedido para a lista de ItemPedido.

No entanto, pelo que observei no seu código e no log do Hibernate, não parece que as tabelas estão sendo duplicadas. O que acontece é que o Hibernate está criando as tabelas e, em seguida, está alterando-as para adicionar as restrições de chave estrangeira (foreign key).

Vamos observar um exemplo:

Hibernate: 
create table pedidos (
   id bigint generated by default as identity,
    data date,
    valorTotal decimal(19,2),
    cliente_id bigint,
    primary key (id)
)

Depois dessa criação, o Hibernate faz o seguinte:

Hibernate: 
alter table pedidos 
   add constraint FKg7202lk0hwxn04bmdl2thth5b 
   foreign key (cliente_id) 
   references clientes

Isso não significa que a tabela pedidos foi criada duas vezes. Na verdade, a tabela foi criada e, em seguida, foi alterada para adicionar uma restrição de chave estrangeira. O mesmo acontece com as outras tabelas.

Espero que isso esclareça sua dúvida. Se ainda tiver problemas, por favor, compartilhe mais detalhes para que possamos entender melhor o que está acontecendo.

Espero ter ajudado e bons estudos!

Valeu Matheus, Eu me confundi com as infos do console. De fato as tables não estão duplicadas

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software