Galera estou testando aqui mais não consigo chegar no resultado, adicionando a conta no banco de dados está dando, depois vo adicionar a movimentação ele adiciona, com um porem na movimentação queria colocar metodos de sacar transferencia e depositar, o código está rodando só que não adiciona por exemplo, meu metodo depositar não adiciona dinheiro nenhum no meu banco de dados de conta, oque que estou errando? Quando coloco o metodo na classe conta ele faz o deposito e aparece no banco, mas no movimentaçao não :(
import java.math.BigDecimal;
import java.util.Calendar;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Conta {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
protected double saldo;
private BigDecimal limite;
private String titular;
@Temporal(TemporalType.DATE)
private Calendar data;
public Conta() {
}
public Conta(String titular, BigDecimal limite) {
this.titular = titular;
this.limite = limite;
}
public void setLimite(BigDecimal limite) {
this.limite = limite;
}
public void setTitular(String titular) {
this.titular = titular;
}
public void setData(Calendar data) {
this.data = data;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public BigDecimal getLimite() {
return limite;
}
public String getTitular() {
return titular;
}
public Calendar getData() {
return data;
}
}
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Movimentacao {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne
private Conta conta = new Conta();
public void depositar(double valor) {
if (valor <= 0) {
throw new IllegalArgumentException("ERRO");
} else {
this.getConta().saldo += valor;
}
}
public void sacar(double valor) {
if(valor <= 0 || valor < this.getConta().getSaldo()) {
throw new IllegalArgumentException("ERRO");
} else {
this.getConta().saldo -= valor;
}
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Conta getConta() {
return conta;
}
public void setConta(Conta conta) {
this.conta = conta;
}
}
import javax.persistence.EntityManager;
import br.com.bercalini.banco.modelo.Conta;
import br.com.bercalini.jpa.JPAUtil;
public class TestaConta {
public static void main(String[] args) {
Conta conta = new Conta();
conta.setTitular("TESTE");
conta.setData(Calendar.getInstance());
conta.setLimite(new BigDecimal(700.0));
EntityManager em = new JPAUtil().geEntityManager();
em.getTransaction().begin();
em.persist(conta);
em.getTransaction().commit();
em.close();
}
}
import javax.persistence.EntityManager;
import br.com.bercalini.banco.modelo.Conta;
import br.com.bercalini.banco.modelo.Movimentacao;
import br.com.bercalini.jpa.JPAUtil;
public class TestaMovimentacao {
public static void main(String[] args) {
Movimentacao movimentacao = new Movimentacao();
movimentacao.depositar(700.0);
EntityManager em = new JPAUtil().geEntityManager();
em.getTransaction().begin();
Conta c = em.find(Conta.class, 1);
movimentacao.setConta(c);
em.persist(movimentacao);
em.getTransaction().commit();
em.close();
}
}