Galera sequinte tenho uma Classe Lancameto que pode ter varios proventos.
@Entity
@SequenceGenerator(name = "SEQ_LANCAMENTO", sequenceName = "SEQ_LANCAMENTO")
public class Lancamento implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_LANCAMENTO")
private long id;
@ManyToOne
private Funcionario funcionario;
private int mes;
private int ano;
@Column(scale = 2, precision = 12)
private BigDecimal totaldesconto;
@Column(scale = 2, precision = 12)
private BigDecimal totalproventos;
@OneToMany(mappedBy = "lancamento",cascade=CascadeType.ALL)
@OrderBy
private List<Provento> proventos;
//demais gets e sets
@Entity
@SequenceGenerator(name = "SEQ_PROVENTO", sequenceName = "SEQ_PROVENTO")
public class Provento implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_PROVENTO")
private long id;
@ManyToOne
private Lancamento lancamento;
@ManyToOne
private Evento evento;
@Column(length=20)
private String referencia;
private BigDecimal vencimento;
private BigDecimal desconto;
private double parametro;
//demais gets e sets
o problema ocorre quanto eu quero remover um item de proventos
System.out.println("Provento a remover "+provento.getEvento().getDescricao());
lancamento.getProventos().remove(provento);
DaoFactory.getNewDaoFactory().getLancamentoDAO().gravar(lancamento);
o programa remove da lista, porem nao reflete no banco
quando volto ler esse registro novamente o “mardido do item” ta la ainda.
do resto ta funcionando tudo oq.
PS. estou usando session.merger para atualizar