db4o Developer Community

db4o open source object database, native to Java and .NET
Welcome to db4o Developer Community Sign in | Join
in Search
More Search Options

registros duplicados no db4o

Last post 07-17-2008, 08:50 PM by jonathas_oliveira. 2 replies.
Sort Posts: Previous Next
  •  06-26-2008, 05:19 PM 49860

    registros duplicados no db4o

    Olá pessoal estou com uma certa dificuldade... com relação ao db4o.

     Penssei até em deixar para lá mais resolvi pedir um help para vcs..

     

    la vai por exemplo crio dois bean um para cliente e produto

    quando vou fazer uma compra tenho que colocar o nome do cliente e o produto e gravar no banco..

     primeiro eu dou um new Cliente();  cadastro o cliente

    depois eu dou um new produto(); e cadastro os produtos.

     

    tenho dois objetos diferente...

     

    só que quando vou gravar no bando em um outro Objeto por exemplo MinhaCompra(cliente, produto);

    ele copia o cliente e o produto para o objeto MinhaCompra como se a classe Cliente e Produto não valesse mais para nada...


     não sei se consegui expor meu problema...

     

    mais gostaria de uma ajuda..

     


     

  •  06-27-2008, 12:48 AM 49863 in reply to 49860

    Re: registros duplicados no db4o

    Ola Jonathas

    A causa mais comum que vi para este comportamento � voc� tentar
    armazenar um objeto que n�o esteja no "cache" interno do Db4o.

    Por exemplo:

    Cliente c1 = new Cliente("Adriano", "Londrina");
    db = openDb();
    db.set(c1);

    db.close();
    db = openDb();

    c1.setCity("S�o Paulo");
    db.Set(c1); // !!!!

    Neste caso ser� inclu�do um novo registo no banco (ao inv�s de atualizar
    o j� existente).

    A solu��o � recuperar o objeto antes de atualizar:

    Cliente c1 = new Cliente("Adriano", "Londrina");
    db = openDb();
    db.set(c1);

    db.close();
    db = openDb();

    Query q = db.Query();
    q.constrain(Cliente.class);
    q.descend("_name").constrain("Adriano");

    c1 = (Cliente) q.execute().moveNext();

    c1.setCity("S�o Paulo");
    db.Set(c1);

    Espero ter ajudado.

    Adriano

    jonathas_oliveira wrote:
    > Olá pessoal estou com uma certa dificuldade... com relação ao db4o.
    >
    > Penssei até em deixar para lá mais resolvi pedir um help para vcs..
    >
    >
    >
    > la vai por exemplo crio dois bean um para cliente e produto
    >
    > quando vou fazer uma compra tenho que colocar o nome do cliente e o
    > produto e gravar no banco..
    >
    > primeiro eu dou um new Cliente(); cadastro o cliente
    >
    > depois eu dou um new produto(); e cadastro os produtos.
    >
    >
    >
    > tenho dois objetos diferente...
    >
    >
    >
    > só que quando vou gravar no bando em um outro Objeto por exemplo
    > MinhaCompra(cliente, produto);
    >
    > ele copia o cliente e o produto para o objeto MinhaCompra como se a
    > classe Cliente e Produto não valesse mais para nada...
    >
    >
    > não sei se consegui expor meu problema...
    >
    >
    >
    > mais gostaria de uma ajuda..
    >
    >
    >
    >
    >
    >
    >
    > ------------------------------------------------------------------------
    > http://developer.db4o.com/forums/thread/49860.aspx
    >


    --
    *Adriano Carlos Verona* � *db4objects*
  •  07-17-2008, 08:50 PM 50196 in reply to 49863

    Re: registros duplicados no db4o

    muito obrigado pela resposta...

    consegui resolver um dos problemas que um aprendiz passa......

    bem mais o problema que estou tendo agora é com o id interno do objeto..

    se eu uso o método generateUUIDs

    ele vem marcado ... como deprecated

    teria como eu implementar um UUIDs de outra forma.. estou usando a versão 6..4.48 do db4o.

     

    muito obrigado pela atenção...

View as RSS news feed in XML