Exclusão com restrição no DB4O [RESOLVIDO]

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!