Implementei o código como visto no vídeo e deu tudo certo. Mas, se eu tento criar o cliente primeiro, adicioná-lo a conta e persistir a conta, o relacionamento não é refletido no banco.
Já tentei criar o relacionamento OneToOne também na conta informado um MappedBy e mesmo assim não funcionou. Alguma dica?
Não seria interessante que a relação fosse preenchida caso eu inserisse um dos dois objetos, referenciando o outro?
Segue abaixo o código das minhas classes Conta e Cliente:
package br.com.mmorais.financas.modelo;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@Entity
public class Conta {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@OneToOne(mappedBy="conta")
private Cliente titular;
private String numero;
private String banco;
private String agencia;
@OneToMany(mappedBy="conta")
private List<Movimentacao> movimentacoes;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Cliente getTitular() {
return titular;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getBanco() {
return banco;
}
public void setBanco(String banco) {
this.banco = banco;
}
public String getAgencia() {
return agencia;
}
public void setAgencia(String agencia) {
this.agencia = agencia;
}
public List<Movimentacao> getMovimentacoes() {
return movimentacoes;
}
public void setMovimentacoes(List<Movimentacao> movimentacoes) {
this.movimentacoes = movimentacoes;
}
}
package br.com.mmorais.financas.modelo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
@Entity
public class Cliente {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String nome;
private String profissao;
private String endereco;
@JoinColumn(unique=true)
@OneToOne
private Conta conta;
public Cliente() {
}
public Cliente(String nome, String profissao, String endereco) {
super();
this.nome = nome;
this.profissao = profissao;
this.endereco = endereco;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getProfissao() {
return profissao;
}
public void setProfissao(String profissao) {
this.profissao = profissao;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public Conta getConta() {
return conta;
}
public void setConta(Conta conta) {
this.conta = conta;
}
}