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

Sobre @ManyToOne

Bom dia pessoal,

Estou fazendo os cursos de SQL e JPA, e tenho uma dúvida que sei que é simples mas ainda não consegui compreender bem. Vou usar como exemplo uma situação onde tenho 2 tabelas

@Entity
public class Cliente{
private Long id;
private String nome;
private String cpf;
}

@Entity
public class Livros{
private Long id;
private String nome;

@ManytoOne
private Cliente cliente_id;

Onde no caso, o 'Livros.cliente_id' será a chave estrangeira 'Cliente.id'

Agora segue a dúvida (partindo do pressuposto que eu já tenho a tabela Cliente populada e não irei alterá-la)

Quando eu instanciar um novo registro de 'Livros', como faço para passar o Cliente.id no campo Livro.cliente_id, sem criar uma nova instancia de 'Cliente' ? Pois se eu passar apenas o numero do Id, irá dar erro de tipagem

2 respostas
solução!

Olá Daniel, A classe livro possui uma referência para a classe Cliente e não um id do tipo inteiro. Você tem que buscar o no banco o cliente existente a fazer setCliente. A sua classe deve se chamar livro apenas e o campo cliente_id troca para cliente.

O Jpa é uma abstração do mundo OO para o mundo relacional. A classe livro possui então uma referência para a entidade cliente, não apenas para o id do cliente saca? Assim vc consegue a partir da classe livro navegar para a classe cliente e não apenas para o id. Se na classe livro vc tivesse apenas o id do cliente não faria muito sentido.

Obrigado pelo esclarecimento, José, vou refazer os testes.

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