Olá a todos
Estou com uma dúvida.
Como eu poderei no DB4O, criar uma restrição para não poder excluir um objeto, pois o mesmo
está vinculado a um outro objeto?
Olá a todos
Estou com uma dúvida.
Como eu poderei no DB4O, criar uma restrição para não poder excluir um objeto, pois o mesmo
está vinculado a um outro objeto?
Conseguiu resolver seu problema que é o mesmo que o meu?
Olá
Se um objeto contiver dentro de outro, simplesmente removo de maneira inversa a que inseri.
caso seja uma coleção, removo por meio de um foreach.
Só que deparei com um outro problema. Mesmo dando delete, no banco o conteúdo permanece, porém não mais será exibido
o conteúdo para o cliente.
Caso descruba como corrigi isso, poste aqui.
Valeu
Não entendi bem o que vc quiz dizer com “inversa”, mas me deixe descrever o que penso.
Aqui no trabalho não tenho as ferramentas para realizar o teste desta minha “achologia”. Mas, acho que se temos um objeto como objVenda e outro como objVendaItem e tentarmos deleta o objeto objVendaItem a partir de objVenda, então o que na verdade pode estar acontecendo é que estamos excluindo apenas a relação entre esses objetos e por isso o objVendaItem permanece na base de dados. Como sugestão acredito que se deletarmos diretamente o objVendaItem consequentemente também excluimos a relação, uma vez que o próprio foi excluído.
Encontrei uma algo melhor para esse caso que é apenas configurar a classe para excluir objetos associados, assim como se fosse integridade referencial em SGBDR quando configuramos restrições para atualização e exclusão em cascata.
EmbeddedConfiguration config = Db4oEmbedded.newConfiguration();
config.common().objectClass("br.dgc.Venda").cascadeOnDelete(true);
config.common().objectClass("br.dgc.Venda").cascadeOnUpdate(true);
Desta forma, Db4o irá também excluir os objetos de objVendaItem. Bom, acredito que assim funcione conforme o esperado.
Você testou e realmente retirou o conteúdo por completo?
Gostaria de saber.
Sim. Estou desenvolvendo um sistema de controle de estoque e até agora tem dado certo!