Problema com Persist e merge(JPA e Toplink)[Resolvido]

1 resposta
rbroz85

Bom dia senhores,

em um datatable possuo uma listagem. onde posso alterar os precos dos itens.
quando eu clico em salvar. ele salva as alterações e busca a lista dinovo e mostra na tela.

qunado um preço ja existe eu faço assim:

EntityManager em = getEntityManager();
        try {
            utx.begin();
            Coleta c = em.find(Coleta.class, col.getIdColeta());
            c.setColetaAtu(col.getColetaAtu());
            em.merge(c);
            utx.commit();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            em.close();
        }

quando eh um preço novo eu faço assim:

EntityManager em = getEntityManager();
        Insumo insumo;
        Local local;
        try {
            utx.begin();
            em.persist(col);
            
            insumo = col.getInsumoidInsumo();
            insumo.getColetaCollection().add(col);
            em.merge(insumo);
            
            local = col.getLocalidLocal();
            local.getColetaCollection().add(col);
            em.merge(local);
            
            utx.commit();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            em.close();
        }

mas toda vez quando é um preço novo...o id do preco nao vem quando eu chamo a lista dinovo: olha:

Item na lista:
unidade: un ,idcoleta: null ,coletaAnt: null ,coletaAtu: null

Item recuperado depois de salvar:
unidade: un ,idcoleta: null ,coletaAnt: null ,coletaAtu: 9.0

o idcoleta sumiu ! :(
oque eu faço ?

obrigado desde ja

1 Resposta

rbroz85

Resolvido…

nao sabia que tinah que ter esse tmb:

@Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "idColeta", nullable = false) private Integer idColeta;

Obrigado…

fica o post para duvidas de outros…

abraços

Criado 12 de novembro de 2008
Ultima resposta 12 de nov. de 2008
Respostas 1
Participantes 1