Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Spring boot armazenando na tabela errada HELP

package com.example.estacionamento.controller;

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping;

import com.example.estacionamento.domain.cliente.Cliente; import com.example.estacionamento.domain.cliente.ClienteRepository; import com.example.estacionamento.domain.cliente.DonoEstacionamento; import com.example.estacionamento.domain.cliente.DonoRepository;

@Controller @RequestMapping("/estacionamento") public class EstacionamentoController {

@Autowired
private ClienteRepository repository;
@Autowired
private DonoRepository reposito;
@GetMapping
public String carregaPaginaInicial() {
    return "estacionamento/Inicial";
}

@GetMapping("/dono")
public String carregaPaginaEstacionamento() {
    return "estacionamento/dono";
}

@PostMapping("/dono")
public String cadastraDono(CadastroDonoEstacionamento dados_2, Model model) {
    var donoestacionamento = new DonoEstacionamento(dados_2);
    reposito.save(donoestacionamento);
    System.out.println(donoestacionamento);
    return  "redirect:/estacionamento/listagem";
}

@GetMapping("/cliente")
public String carregaPaginaFormulario() {
        return "estacionamento/cliente";
    }

@GetMapping("/listagem")
public String carregaPaginaListagem(Model model) {
    model.addAttribute("lista", repository.findAll());

    return "estacionamento/listagem";
}

@PostMapping
public String cadastraCliente(CadastroCliente dados, Model model) {
    var cliente = new Cliente(dados);
  repository.save(cliente);
    System.out.println(cliente);
    return  "redirect:/estacionamento/listagem";
}

}

package com.example.estacionamento.domain.cliente;

import com.example.estacionamento.controller.CadastroDonoEstacionamento;

import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table;

@Entity @Table(name="DonoEstacionamento") public class DonoEstacionamento {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
@Column(name = "nome")
public String nome;
@Column(name="datadenascimento")
public String dataNascimento;
@Column(name="cpf")
public String cpf;
@Column(name="email")
public  String email;
@Column(name="senha")
public String senha;
@Column(name="numero")
public int numero;

@Override
public String toString() {
    return "Nome: " + nome +
            ", Data de Nascimento: " + dataNascimento+
            ", Email: " + email +
            ", CPF: " + cpf +
            ",numero"+ numero+
            "senha"+ senha
            ;
}

public DonoEstacionamento() {
    
}

public DonoEstacionamento( CadastroDonoEstacionamento dados_2) {

this.cpf=dados_2.cpf();
this.dataNascimento=dados_2.dataNascimento();
this.email=dados_2.email();
this.nome=dados_2.nome();
this.numero=dados_2.numero();
this.senha=dados_2.senha();   

} }

estou tentando cadastra o dono do estacionamento na tabela do dono do estacionamento mas esta armazenando na tabela do cliente

1 resposta
solução!

Olá, Emanuel

Pelo que pude analisar no seu código, parece que a sua implementação está correta. No entanto, é importante garantir que o método cadastraDono esteja sendo chamado corretamente quando você tenta cadastrar um dono de estacionamento.

Um ponto que pode estar causando confusão é o fato de que você está utilizando o mesmo endpoint ("/estacionamento") para cadastrar tanto o cliente quanto o dono do estacionamento. Isso pode fazer com que o método errado seja chamado dependendo de como você está fazendo a requisição.

Para evitar essa confusão, sugiro que você utilize endpoints diferentes para cadastrar o cliente e o dono do estacionamento. Por exemplo:

@PostMapping("/dono")
public String cadastraDono(CadastroDonoEstacionamento dados_2, Model model) {
    // código omitido por brevidade
}

@PostMapping("/cliente")
public String cadastraCliente(CadastroCliente dados, Model model) {
    // código omitido por brevidade
}

Dessa forma, quando você quiser cadastrar um dono de estacionamento, você fará uma requisição POST para "/estacionamento/dono", e quando quiser cadastrar um cliente, fará uma requisição POST para "/estacionamento/cliente". Isso deve ajudar a garantir que o método correto seja chamado em cada caso.

Espero ter ajudado e bons estudos!