Segue a baixo meu código
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Conta {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String titular;
private String banco;
private String agencia;
private String numero;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
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 String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
@Override
public String toString() {
return String.format("[%d %s %s %s %s]" , id, titular, banco, numero, agencia);
}
}
import java.math.BigDecimal;
import java.util.Calendar;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Movimentacao {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Temporal(TemporalType.DATE)
private Calendar data;
@Enumerated(EnumType.STRING)
private tipoDeMovimentacao tipoDeMovimentacao;
private BigDecimal valor;
private String descricao;
@ManyToOne
private Conta conta = new Conta();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Calendar getData() {
return data;
}
public void setData(Calendar data) {
this.data = data;
}
public tipoDeMovimentacao getTipoDeMovimentacao() {
return tipoDeMovimentacao;
}
public void setTipoDeMovimentacao(tipoDeMovimentacao tipoDeMovimentacao) {
this.tipoDeMovimentacao = tipoDeMovimentacao;
}
public BigDecimal getValor() {
return valor;
}
public void setValor(BigDecimal valor) {
this.valor = valor;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Conta getConta() {
return conta;
}
public void setConta(Conta conta) {
this.conta = conta;
}
}
import java.math.BigDecimal;
import java.util.Calendar;
import javax.persistence.EntityManager;
import br.com.bercalini.jpa.JPAUtil;
import br.com.bercalini.modelo.financas.Conta;
import br.com.bercalini.modelo.financas.Movimentacao;
import br.com.bercalini.modelo.financas.tipoDeMovimentacao;
public class TestaRelacionamento {
public static void main(String[] args) {
Conta conta = new Conta();
conta.setAgencia("99999");
conta.setBanco("ITAU");
conta.setNumero("99999");
conta.setTitular("TESTE1");
import javax.persistence.EntityManager;
import br.com.bercalini.jpa.JPAUtil; import br.com.bercalini.modelo.financas.Conta;
public class TesteConta { public static void main(String[] args) {
Conta conta = new Conta(); conta.setAgencia("99999"); conta.setBanco("ITAU"); conta.setNumero("99999"); conta.setTitular("TESTE1");
EntityManager em = new JPAUtil().geEntityManager(); em.getTransaction().begin(); em.persist(conta); em.getTransaction().commit(); em.close(); } }
Movimentacao movimentacao = new Movimentacao();
movimentacao.setData(Calendar.getInstance());
movimentacao.setDescricao("Pagar luz");
movimentacao.setTipoDeMovimentacao(tipoDeMovimentacao.SAIDA);
movimentacao.setValor(new BigDecimal(123.9));
movimentacao.setId(1);
movimentacao.setConta(conta);
EntityManager em = new JPAUtil().geEntityManager();
em.getTransaction().begin();
em.persist(conta);
em.persist(movimentacao);
em.getTransaction().commit();
em.close();
}
}
fiz o meu populaConta e salvei os resultado no banco, aqui salvei 5 usuario.
1 99999 ITAU 99999 TESTE1
2 99999 ITAU 99999 TESTE2
3 99999 ITAU 99999 TESTE3
4 99999 ITAU 99999 TESTE4
5 99999 ITAU 99999 TESTE5
Até aqui tudo bem, depois eu vo popular a movimetancao e salvar no banco.
1 2016-09-14 Pagar luz SAIDA 123.90 6
2 2016-09-14 PAGAR AGUA SAIDA 123.90 7
E como visto o meu id da conta na tabela movimentacao, ele esta aumento cada vez 1, e era para mostrar o id da conta e não incrementar. :( onde esta o erro?